extjs4的grid中CheckboxModel,跨分頁選中,

最近在查看自己寫的程序時,發現在grid中的CheckboxModel,在跨分頁無法選中,比如,在我第一頁選了兩條記錄,然後點擊下一頁後,grid裏的store會load下,這時在回到第一頁時,grid裏的store又會load下,而且以前選中的,無法選中。

我在網上查了一下,發現翻頁時,load事件,會執行CheckboxModel控件裏的方法,這樣在beforeload時去deselect這個事件,然後在load事件後加上deselect事件。

代碼如下:

var selfarray = [];
var recordids = Ext.create('Ext.util.MixedCollection', {});

var deSelection = function(sm, record) {
recordids.remove(record.data.id);
};

var sm = Ext.create("Ext.selection.CheckboxModel", {
checkOnly : true,

listeners : {
select : function(me, record, o) {
recordids.add(record.data.id, record.data.id);
},
deselect : deSelection
}
});

var store = Ext.create('sj.zxprojectbaseinfo.ZxprojectbaseinfoStore', {
listeners : {
beforeload : function(store, operation, o) {
sm.removeListener('deselect', deSelection);
},
load : function(store, records, successful) {
sm.removeListener('deselect', deSelection);
store.each(function(record) {
recordids.each(function(item) {
if (record.data.id == item) {
selfarray.push(record);
}
})
})
sm.select(selfarray, true);
sm.addListener('deselect', deSelection);
}
}
})

但這樣數組selfarray會添加重複內容,我也寫了一個去掉重複內容的方法,但在分頁中只能選中一次,鬱悶中。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章