先看效果:
当勾选全选的时候,所有记录都全选,当取消勾选时候,所有记录都取消。当手动取消某一行的时候,仅仅只取消勾选你取消的那一行。
实现思路:
记录你取消的行的id到数组中。然后在onloadSuccess里面通过判断是否在当前页中。来判断是否取消选中。简单代码如下:
grid的创建就不写了,只写主要的代码:
onLoadSuccess:function(data){
if(markAll == ‘all‘){//标记勾选了全选
$(this).datagrid(‘checkAll‘);
}
if(markAll == ‘‘){//标记取消勾选全选
$(this).datagrid(‘uncheckAll‘);
}
$.each(cacelIndexs,function(index){
var rowIndex = $(‘#bankData_data_grid‘).datagrid(‘getRowIndex‘,cacelIndexs[index]);
if(rowIndex!=-1){
$(‘#bankData_data_grid‘).datagrid(‘uncheckRow‘,rowIndex);
}
});
},
onUncheck:function(index,row){
$(‘#allCheck‘).attr(‘checked‘,false);
if($.inArray(row.ID,cacelIndexs)==-1){
cacelIndexs.push(row.ID);
}
}
原文:http://my.oschina.net/kkrgwbj/blog/500779