系统业务需要,导入的列表数据默认全部选中,且不可取消选中行。全部店铺优惠券发放过后导入的数据全部清空。如图所示:
一、初始化页面默认全部选中“selectAll”,全部不选中“unselectAll”,写在onLoadSuccess列表加载完回调函数中
onLoadSuccess: function () { $("#datagrid_user").datagrid("selectAll"); //全部选中 $("#datagrid_user").datagrid("unselectAll"); //全部不选中 $("input:checkbox").prop("disabled", true); //禁用checkbox复选框 }
二、取消点击行的选中事件(选中之后不可再取消),从网上看到的只是禁止选中,不是自己想要的,记录下来方便参考
//标示是否是勾选复选框选中行的,true - 是,false - 否 定义变量量需要放在顶部 var IsCheckFlag = true; onClickCell: function (rowIndex, field, value) { IsCheckFlag = false; }, onSelect: function (rowIndex, rowData) { if (!IsCheckFlag) { IsCheckFlag = true; $("#datagrid_user").datagrid("unselectRow", rowIndex); } }, onUnselect: function (rowIndex, rowData) { if (!IsCheckFlag) { IsCheckFlag = true; $("#datagrid_user").datagrid("selectRow", rowIndex); } }
解决思路:
01.定义IsCheckFlag标识变量来保存是否点击了单元格,如果点击了单元格则此操作不是通过复选框操作的,标识设为false。
02.在选中和取消选中事件中判断操作来源,即IsCheckFlag的值。如果为false,选中操作执行取消选中,取消选中操作执行选中。
03.执行之前默认把标识值设为默认值,如果是复选框操作,是不触发 on