项目中使用到了sigma grid,现在需要在用户全选或选中某一行后,在网页上实时显示当前选中的行数。查了下官网API,
网站:http://www.sigmawidgets.com/products/sigma_grid2/
发现有点击事件,onRowCheck:function( row, chk, grid),但是没有效果,于是用下面的变通方法解决
用到的事件:
onHeadClick:function( event, headCell, colObj, grid)
onCellClick:function( value, record, cell, row, colNo, columnObj, grid)
sigma grid配置代码片段
var colsOption = [
{id: 'chk' ,isCheckColumn : true, _checkType:'radio', frozen : false , filterable : false, header: "", title: "checkall" , fieldName : 'id'},
...........
];
var gridOption2 = {
id:grid_demo_id2,
.........
//当点击表头时
onHeadClick:function( event, headCell, colObj, grid){
if(colObj.id=='chk'){//是全选所在列
setTimeout(setCheckedNumsDisplay, 50 );
//if($(".gt-f-totalcheck").attr("checked")){//判断全选是否选中,如果全选选中了,此时立即去计算时,子选项实际还未选择,所以设置延时50ms
//setTimeout(setCheckedNumsDisplay, 50 );
//}else{//全选取消时会触发子checkbox取消选择,但此时立即去计算时,子选项实际还未取消,选中的行数仍有值,所以设置延时50ms
//setTimeout(setCheckedNumsDisplay, 50 );
//}
}
},
//点击单元格时
onCellClick:function( value, record, cell, row, colNo, columnObj, grid){
if(colNo==0){//点击的是多选框
setCheckedNumsDisplay();
}
}
}
设置显示当前选中记录数:
function setCheckedNumsDisplay(nums){
if(typeof nums == 'undefined'){
nums = Sigma.$grid('myGrid2').getSelectedRecords().length;
}
//alert(nums);
$('#checkednum').text(nums);//设置页面显示当前选中记录数
}