我有一個問題。我在dojo上編寫了一個ComboBox,如果用戶正在編寫一個尚未在商店中的選項,它將被添加。Dojo內存setData不會設置數據
我已經寫了一個keyup事件,它會被觸發,如果用戶點擊返回鍵或回車
if(pressed.keyCode == keys.ENTER){
//var dtemp = dijit.byId("stateSelect").get("store");
var MyMemory = new myownclass();
var value = dijit.byId('stateSelect').get('value');
var isNew = true;
var d = new Memory({data : []});
for(var vi = 0; MyMemory.data[vi].name != "";vi++)
{
d.put({name : MyMemory.data[vi].name, id : MyMemory.data[vi].id});
}
for(var index = 0; index < d.length ; index++)
{
if(value == d[index].name)
{
//alert(value);
isNew = false;
}
//isNew = true;
}
if(isNew == true){
MyMemory.setdata(value);
//var newData = new myownclass();
d.put({name : value, id : vi});
//dijit.byId('stateSelect').get('store').reset();
dijit.byId('stateSelect').get('store').setData(d);
}
}
if(pressed.keyCode == keys.F2){
var MyMemory = new myownclass();
var value = dijit.byId('stateSelect').get('value');
MyMemory.deletedata(value);
//var temp = new myownclass();
//dijit.byId('stateSelect').get('store').remove(dijit.byId('stateSelect').get('store').get('id'));
}
的問題是,它不希望與新店d,以取代舊店!相反,組合框完全是空的:(
的變種d具有內部
誰知道爲什麼它不會顯示該選項的內容?
感謝您的幫助
爲什麼你設置數據存儲每一次。相反,您可以使用內存存儲的「添加」和「刪除」方法,該方法整潔而圓滑。 –