3

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 にオプションを追加する方法は?

4

1 に答える 1

4

FilteringSelectここでの問題は、 が(および から継承するものはすべて_AutoCompleterMixin) そのデータとどのように相互作用するかについてのわずかな誤解です。ウィジェットの作成方法に関係なく、そのオプションを制御するための基礎となるメカニズムは、 Dojo Store APIFilteringSelectに準拠するオブジェクトです。

これは、ウィジェットのオプションを変更するには、代わりFilteringSelectにこれを操作する必要があることを意味します。このフィドルをデモンストレーション用にセットアップしましたが、基本的には関数を次のように変更しますstore

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);
}
于 2013-04-15T16:00:17.863 に答える