datagrid记忆翻页前后的勾选项

该博客介绍了一种方法来实现datagrid组件在翻页后仍然记住用户的勾选状态。通过定义一个变量`selRows`存储选中项,然后在选择、取消选择、全选、全取消和数据加载后更新这个变量,从而达到翻页后仍保留勾选状态的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义一个变量存储所选项:

var selRows = [];

选择一行数据的时候:

onCheck:function(index,row){
            if(selRows.length == 0){
                selRows.push(row);
            } else {
                var has = false;
                for(var i = 0; i < selRows.length; i++){
                    if(row.customerId == selRows[i].customerId && row.if20 == selRows[i].if20){
                        has = true;
                        break;
                    }
                }
                if(has == false){
                    selRows.push(row);
                }
            }
 }

去掉一行勾选项的时候:

onUncheck:function(index,row){
            for(var i = 0; i < selRows.length; i++){
                if(row.customerId == selRows[i].customerId && row.if20 == selRows[i].if20){
                    selRows.splice(i,1);
                    break;
                }
            }
 }

选择勾选当页所有数据的时候:

onCheckAll:function(rows){
            if(rows && rows.length > 0){
                for(var j = 0; j < rows.length; j++){
                    var row = rows[j];
                    var has = false;
                    for(var i = 0; i < selRows.length; i++){
                        if(row.customerId == selRows[i].customerId && row.if20 == selRows[i].if20){
                            has = true;
                            break;
                        }
                     }
                    
                    if(has == false){
                        selRows.push(row);
                    }
                }
            }
   }

去掉勾选当页所有数据的时候:

onUncheckAll:function(rows){
            if(rows && rows.length > 0){
                for(var i = 0; i < selRows.length; i++){
                    for(var j = 0; j < rows.length; j++){
                        if(rows[j].customerId == selRows[i].customerId && rows[j].if20 == selRows[i].if20){
                            selRows.splice(i,1);
                            i--;
                            break;
                        }
                    }
                }
            }  
}

刷新列表的时候反选;

onLoadSuccess:function(row){
            if(selRows && selRows.length > 0){
                var rows = row.rows;
                for(var i = 0; i < selRows.length; i++){
                    for(var k =0 ;k < rows.length; k++){
                        if(rows[k].customerId == selRows[i].customerId && rows[k].if20 == selRows[i].if20){
                            $('#developTree').datagrid('checkRow', k);
                            break;
                        }
                    }
                }
            }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值