我尝试从dijit.form.filteringselect中删除所有选项,并使用以下函数向dijit.form.filteringselect添加选项。但是,我收到一个错误:没有方法getOptions和addOption 。我正在使用dojo 1.7
function showTablesDropDown(tableDiv){
dijit.byId(tableDiv).removeOption(dijit.byId(tableDiv).getOptions());
dijit.byId(tableDiv).addOption(dojo.create("option", {label:"None", value:"None"}));
}
如何从dijit.form.filteringselect中删除所有选项并将选项添加到dijit.form.filteringselect?
答案 0 :(得分:4)
这里的问题只是对FilteringSelect
(以及从_AutoCompleterMixin
继承的任何内容)如何与其数据进行交互的轻微误解。无论您如何创建FilteringSelect
窗口小部件,控制其选项的基础机制都是符合Dojo Store API的对象。
这意味着,要修改FilteringSelect
窗口小部件的选项,您需要与此store
进行交互。我set up this fiddle进行了演示,但基本上你想将你的功能改为:
function showTablesDropDown(tableDiv){
var filteringSelectWidget = dijit.byId(tableDiv);
// Clear current value since options are changing.
filteringSelectWidget.set("value", "");
var store = filteringSelectWidget.get("store");
var newData = [{label: "None", value: "None"}];
// Give the underlying store a new data array.
store.setData(newData);
}