【jqgrid】触发全选不生效?

$("#gridId").trigger("jqGridSelectAll");//选中所有行,调用之后没有任何反应
$("#gridId").trigger("reloadGrid");//重新加载数据,调用成功
 
  

在jqgrid的官方文档中列举了jqGridSelectAll触发事件,但我们使用$("#gridId").trigger("jqGridSelectAll")触发却没有任何效果,我下面是reloadGrid触发事件的定义

.bind('reloadGrid', function(e,opts) {
	......
}

但在jqgrid的源码中并没有发现 jqGridSelectAll类似的定义,所以使用js触发jqGridSelectAll事件没有任何效果,通过修改jqgrid源代码我们可以实现jqGridSelectAll全选事件,在$.fn.jqGrid = function( pin ) {}方法中populate();ts.p.hiddengrid=false;之后添加以下代码

$(ts).bind('jqGridSelectAll',function(e,checkFlag){
	if(e.isTrigger===2){
		return;
	}
	$('#cb_'+ts.id).attr('checked', (checkFlag===false));
      $("#cb_"+ts.id).trigger("click");
      $('#cb_'+ts.id).attr('checked', !(checkFlag===false));
});

全选:

$("#gridId").trigger("jqGridSelectAll",true);
取消全选:
$("#gridId").trigger("jqGridSelectAll",false);

你可能感兴趣的:(jqgrid)