2

json ファイルからデータを取得していますが、これを filteringselect に追加したいと考えています。以下のコードを試しましたが、追加されていません。助けてください

 HTML code==
        <select data-dojo-type="dijit/form/FilteringSelect"
                id="education"></select>

        Javascrip code==
            request.get("/json/education.json", {
                            handleAs: "json"
                        }).then(function(data) {

                            var node = dijit.byId('education');
                            dojo.forEach(data.items, function(desc, index){     
                                node.addOption({
                                     label: desc.name,
                                     value: desc.value 
                                     });
                            });

                        },
                        function(error){});


    Json code

    {
        "title":"Education",
        "items":[
    {"name":"Select Education","value":"0"},
    {"name":"B.A", "value":"1"},
    {"name":"B.Sc" ,"value":"2"},
    ...........................
4

2 に答える 2

2

FilteringSelect のストアは、ajax 呼び出しに基づいて動的に設定できます。

var str = new dojo.store.Memory(optionData);
dijit.byId('widgetId').set('store',str);

ただし、json データは次のようにする必要があります。

var optionData={
                data:[
                   {id:'aaaaaa',name:'aaaaaa'},
                   {id:'bbbbbb',name:'bbbbbb'}
                  ]
               };

上記の例は、実際にストアを置き換えます。ajax 呼び出しからの新しいデータを既存のオプションに追加する必要がある場合は、

 //str is the existing store of FilteringSelect field above
 dojo.forEach(result.data, function(optionSet, index){     
                str.add(optionSet);
 });

注意: 'addOption' は Select でのみ使用できます。FilteringSelect 用ではありません。

于 2014-03-06T09:15:18.233 に答える