在mvc中筛选选择
问题描述:
我想创建一个自动填充输入字段,以便用户开始输入,并在下拉菜单中显示可能的值。我将从数据库中获得的数据。动态商店的东西...我怎么能从控制器调用我的Methode?在mvc中筛选选择
我有以下JS功能:
searchNames:function()
{
var jsonStore = new JsonRest({
url: config.rootContext + '/link/to/controllerMethod'
});
var memoryStore = new Memory();
var myStore = new Cache(jsonStore, memoryStore);
var fs = new FilteringSelect({
id: dijit.byId("serviceSelect"),
store : memoryStore,
});
debugger;
when(myStore.query({id:""})),
function (items, request)
{
var val = "";
if(items.length>0) val = items[0].id;
fs.set('value', val);
}
},
而我的小部件包含:
<td><select data-dojo-type="dijit/form/FilteringSelect" id="serviceSelect" data-dojo-attach-event="onClick:searchNames"></select></td>
感谢输入。
答
FilteringSelect
小部件已经为你做了这个,所以你所需要做的就是设置存储,它应该开箱即用!
既然你已经有了属性在HTML设置,你不需要在你的JS代码创建另一个FilteringSelect
:
var jsonStore = new JsonRest({
url: config.rootContext + '/link/to/controllerMethod'
});
var memoryStore = new Memory();
var myStore = new Cache(jsonStore, memoryStore);
var selectWidget = registry.byId('serviceSelect'); // registry refers to dijit/registry
selectWidget.set('store', myStore);
的HTML应该是这样的:
<td><select data-dojo-type="dijit/form/FilteringSelect" id="serviceSelect"></select></td>
感谢ysou。我是否必须将这段代码放在构造函数中(或者其他类似的东西),还是需要添加一些onChange方法? – Herrminator
这段代码应该放在你的页面的“controller”中 - 如果它是另一个父窗口部件,你应该放在“postCreate”中,或者它只是一些执行onDocumentReady的代码,你也可以放在那里 – Corina