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会添加重复内容,我也写了一个去掉重复内容的方法,但在分页中只能选中一次,郁闷中。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值