Extjs grid 分页多选 数据不会丢失

用 SpringMVC hibernate EXtjs 开发的时候会大量使用 extjs grid 作为数据的展示控件,也会操作数据,那么grid 在要选择数据的时候,就需要注意,如果grid是分页,那我们一般会  监听他的 CheckBox 的选择事件和反选择事件,选择的时候把对应的ID放在一个全局数组中,在反选择的时候就把对应的ID从全局数组中删除,然后再监听store的load事件,每次加载完数据后就遍历他的records,如多其中的ID存在我们的数组中那么我们就把这一条数据CheckBox选择上,具体的看代码


Ext.create('GenInventory.view.win').show();
    Ext.getCmp('myWin').setTitle('库存类型');
    var grid = Ext.getCmp('myGrid');
        var selModel = grid.getSelectionModel();
        var _this = this;
    grid.selModel.addListener({
        deselect: function (me, record, index, opts) {_this.deleteToArr(kclxArr,record.data);},
        select: function (me, record, index, opts) {_this.addToArr(kclxArr,record.data);}
        });
    this.changeTitle(['编码','名称','hidden']);
    var store = Ext.getStore('myGridStore');
    store.removeAll();
    store.proxy.extraParams={};
    store.getProxy().setExtraParam('beId', beId);
    store.getProxy().setExtraParam('branchId', whsId);
    store.getProxy().setExtraParam('storerId', storerId);
    store.getProxy().setExtraParam('type', 'KCLX');
    store.loadPage(1);
    store.addListener({
    load: function (me, records, success, opts) {
    if (!success || !records || records.length == 0){
    return;
    }
    if(kclxArr.length==0){return;}
    records.forEach(function(item){
    for(var i=0;i<kclxArr.length;i++){
    if(item.data.value1==kclxArr[i].value1){
    selModel.select(item, true, true); // 不会触发选择事件
    }
    }
   
    })
    }
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值