|
在方法之前我的關(guān)于multiselect對象的store是這樣定義的:
復(fù)制代碼 代碼如下:
flowDs = new Ext.data.ArrayStore({
data: [[123,123]],
fields: ['value','text']
});
(1)var toflowStore = msForm.getForm().findField('toflow').store; //根據(jù)名稱得到multiselect對象的store對象;
(2)創(chuàng)建一個(gè)Ext.data.Record對象,這正在我想了好久的增加方法,也怪自己太笨了:
復(fù)制代碼 代碼如下:
var record = new Object();
record.value = "2";
record.text = "3";
var records = new Ext.data.Record(record);
(3) 將創(chuàng)建的Ext.data.Record對象加至multiselect的store對象中:
toflowStore.add(record1);
通過以上三步就可以為列表multisleect動態(tài)增加列表項(xiàng)了,提醒一下刪除某項(xiàng)可以通過remove()/removeAll()方法,具體的使用方法可以通過示例代碼的ItemSelector.js中查到.
通過以上分析后,大致可以簡單估計(jì)到multiselect的創(chuàng)建規(guī)則,在store中有一個(gè)屬性fields: ['value','text'],則在創(chuàng)建時(shí),系統(tǒng)會通過循環(huán)的方式將屬性data:[[123,123]]中的內(nèi)容創(chuàng)建為object對象,然后寫到時(shí)它的store對象中,類似下面的代碼:
復(fù)制代碼 代碼如下:
var item = [],itemObj,record;
for(var i = 0; i< this.data.length;i++){
item = this.data[i];
itemObj = new Object();
itemObj.value = item[0];
itemObj.text = item[1];
record = new Ext.data.Record(itemObj);
this.store.add(record);
}
以上只是我腓臆的猜測,具體extjs的工程師是不是如此設(shè)計(jì)他們的程序,還沒有仔細(xì)研究.
JavaScript技術(shù):extjs 列表框(multiselect)的動態(tài)添加列表項(xiàng)的方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。