系统业务需要,导入的列表数据默认全部选中,且不可取消选中行。全部店铺优惠券发放过后导入的数据全部清空。如图所示:

一、初始化页面默认全部选中“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.执行之前默认把标识值设为默认值,如果是复选框操作,是不触发 onClickCell 事件的,也就是标识值会是true。

注意点:
  IsCheckFlag = true;
  $("#datagrid_user").datagrid("unselectRow", rowIndex);
这两句代码的先后顺序,
  //如果把 IsCheckFlag = true放在下面,会形成类似死循环的情况。
  //因为 $("#datagrid_user").datagrid("unselectRow", rowIndex) 这个事件会直接触发 onUnselect事件,
  //而 IsCheckFlag = true; 没有执行。依次执行便会成为死循环。

三、禁止点击行选中,只可通过点击复选框选中

onClickRow: function (rowIndex, rowData) {
$(this).datagrid('unselectRow', rowIndex);
},

四、行选中、取消选中全部禁止、将上述1、2方法综合一下就可以实现效果了。源码如下:

function GetList() {
var strName = $("#txt_name").val();
var strVipCard = $("#txt_vipcard").val();
var strTelePhone = $("#txt_telephone").val()
var strBrandType = $("#select_pp").val();
var strBindShop = $("#txt_shopnumber").val();
var strJfFrom = $("#txtJFFrom").val();
var strJFTo = $("#txtJFTo").val();
var IsCheckFlag = true; //标示是否是勾选复选框选中行的,true - 是 , false - 否
/// 微信用户列表
$("#datagrid_user").datagrid({
url: "../HttpHandler/DiscountCoupon/DiscountCouponSendHandler.ashx",
width: $(window).width() - ,
height: $(window).height() - ,
pageNumber: ,
pageSize: ,
pageList: [, , ],
queryParams: {
method: "getList",
Name: strName,
VipCard: strVipCard,
TelePhone: strTelePhone,
BrandType: strBrandType,
BindShop: strBindShop,
JFFrom: strJfFrom,
JFTo: strJFTo
},
scrollbarSize: ,
idField: 'ROWNUM',
fitColumns: true,
loadMsg: '数据加载中',
pagination: true,
singleSelect: false,
selectOnCheck: true,
columns: [[
{field: 'ROWNUM', checkbox: true, title: '选择', width: , align: 'center'},
{ field: 'KHMC', title: '绑定店铺', align: 'center', width: },
{ field: 'GKDM', title: '代码', align: 'center', width: },
{ field: 'Name', title: '姓名', align: 'center', width: },
//{ field: 'TYPE', title: '品牌', align: 'center', width: 70 },
{
field: 'KLDM', title: '卡类型', align: 'center', width: , formatter: function (value, row, index) {
var result = "";
switch (value) {
case "":
result = "KL银卡";
break;
case "":
result = "KL金卡";
break;
case "":
result = "KL积分卡";
break;
case "":
result = "KR银卡";
break;
case "":
result = "KR金卡";
break;
case "":
result = "KR积分卡";
break;
}
return result;
}
},
{ field: 'VipCard', title: 'VIP卡号', align: 'center', width: },
{ field: 'TelePhone', title: '手机号', align: 'center', width: },
{ field: 'DQJF', title: '当前积分', align: 'center', width: },
{
field: '操作', title: '操作', align: 'center', width: , formatter: function (value, row, index) {
if (row.MbillID) {
return "<a id=\"SendSMS_" + index + "\" type=\"button\" >已验券</a>";
} else {
if (row.IsUsed == ) {
return "<a id=\"SendSMS_" + index + "\" type=\"button\" value=\"\" onclick=\"serachmbillid('" + row.Coupon + "','" + data_string(row.Createdate) + "','" + row.Vipcard + "')\">验券</a>";
}
}
}
}
]],
onLoadSuccess: function () {
$(
"#datagrid_user").datagrid("selectAll"); //初始化默认全部选中
$("input:checkbox").prop("disabled", 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);
}
}
});
}

---红色部分为重点,如果你觉得对你有帮助的话,请给博主点个赞哦~

easyui datagrid checkbox复选框取消单击选中事件、初始全选全不选等问题解决的更多相关文章

  1. ExtJS中,将Grid表头中的全选复选框取消复选

    今天发现公司产品用的EXTJS中使用Grid时,Grid表头中的全选复选框的选中状态不是很准确,就写了这个小扩展 在js中加入下面方法,在需要取消全选的地方调用即可,例:Ext.getCmp('gri ...

  2. Androd点击一个选框取消其他选框

    说明: 我做的体温填报系统需要在填报体温时勾选有无特殊情况 当勾选'无'时需要将用户勾选的其他选框取消 当勾选其他选框时需要将'无'这个选框取消 效果: 代码: addTem.xml <Line ...

  3. easyui datagrid checkbox multiple columns have been done do

    lengku1987   2013-01-06 22:27:47   Sponsored Links   easyui datagrid checkbox multiple columns have ...

  4. jQuery EasyUI DataGrid Checkbox 数据设定与取值

    纯粹做个记录,以免日后忘记该怎么设定. 这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数 ...

  5. EasyUI datagrid checkbox数据设定与取值(转自http://blog.csdn.net/baronyang/article/dnetails/9323463,感谢分享,谢谢)

    这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数据列的 Checkbox 设定为 Che ...

  6. easyui datagrid 通过复选框删除新追加的数据问题

    之前写好的功能在保存好数据后再通过复选框删除是没有问题的,可现在想多追加几行,然后选择删除新追加的某几行或一行,通过$('#dg').datagrid('getChecked')方法返回选中行,然而返 ...

  7. EasyUI DataGrid Checkbox 多选 获取选中行中的内容

    <table id='grid' class='easyui-datagrid' style='width:950px;height:405px' url='Ajax-index.php?mod ...

  8. easyui datagrid checkbox的相关属性整理

    DataGrid其中与选择,勾选相关 DataGrid属性: singleSelect boolean 如果为true,则只允许选择一行. false ctrlSelect boolean 在启用多行 ...

  9. easyui datagrid checkbox选中事件

    $('#grid_Order').datagrid({       onCheck: function(index, data) { //alert(data[0]);               / ...

随机推荐

  1. Cobbler——无人值守安装多种版本多种配置操作系统

    Cobbler Web 图形界面也能实现类似的导入功能,可以参见下一节举了一个Cobbler Web的用法: cobbler 添加网络同步仓库(Reposync用法)

  2. Google Protocol Buffer入门

    简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 ...

  3. Java 解析自定义XML文件

    这里我用 maven项目 作为 演示 配置pom.xml文件 完整的pom.xml文件信息 <?xml version="1.0" encoding="UTF-8& ...

  4. BZOJ 2809: [Apio2012]dispatching(可并堆 左偏树板题)

    这道题只要读懂题目一切好说. 给出nnn个点的一棵树,每一个点有一个费用vvv和一个领导力aaa,给出费用上限mmm.求下面这个式子的最大值ax∗∣S∣ ( S⊂x的子树, ∑iv[i]≤m )\la ...

  5. Acwing-203-同余方程(扩展欧几里得)

    链接: https://www.acwing.com/problem/content/205/ 题意: 求关于x的同余方程 ax ≡ 1(mod b) 的最小正整数解. 思路: 首先:扩展欧几里得推导 ...

  6. JProfiler集成在eclipse中(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sinat_38259539/articl ...

  7. JavaScript算术运算符

    ㈠运算符(操作符) ⑴通过运算符可以对一个或多个值进行运算,并获取运算结果 ⑵比如:typeof就是运算符,可以来获得一个值得类型               它会将该值的类型以字符串的形式返回   ...

  8. CentOS下安装libjpeg库及编译GD库

    GD库明明安装了,可处理图片的时候还是报错 Fatal error: Call to undefined function imagecreatefromjpeg() .PHP安装后,默认的gd库不支 ...

  9. luogu 3441 [POI2006]MET-Subway 拓扑排序+思维

    Description 给出一棵N个结点的树,选择L条路径,覆盖这些路径上的结点,使得被覆盖到的结点数最多. Input 第一行两个正整数N.L(2 <= N <= 1,000,000, ...

  10. Hibernate 5 Maven 仓库的 Artifacts

    Hibernate artifacts 官方发布的仓库在 JBoss Maven repository 中.Hibernate 发布的 artifacts 也会同时同步到 Maven Central ...