easyui datagrid自定义复选框

easyui datagrid自定义复选框,实现审批后隐藏复选框,多选和全选的问题

    $(function () {
        var IsCheckFlag = true;
        $('#WaitPactList').datagrid({
            url: '@Url.Action("GetWaitPactList")',
            width:SetGridWidthSub(70),
            methord: 'post',
            height: SetGridHeightSub(160),
            fitColumns: true,
            sortName: 'CreateDate',
            sortOrder: 'desc',
            idField: 'Id',
            pageSize: 15,
            pageList: [15, 20, 30, 40, 50],
            pagination: true,
            striped: true, //奇偶行是否区分
            singleSelect: false,//单选模式
            //checkOnSelect: true,
            //selectOnCheck: true,
            checkOnSelect: false,
            selectOnCheck: false,
            columns: [[
                //{ field: 'Id', title: 'Id', width: 80, checkbox: true },
                { field: 'Id', title: 'Id', width: 80, hidden: true },
                { field: 'PactName', title: '合同名称', width: 80, sortable: true },
                { field: 'PactNum', title: '合同编号', width: 80, sortable: true },
                { field: 'CustomerName', title: '客户名称', width: 80, sortable: true },
                { field: 'MUser_UserName', title: '客户经理', width: 80, sortable: true },
                {
                    field: 'IsSeal', title: '状态', align: 'center', width: 80, sortable: false,
                    formatter: function (value, row, index) {
                        if (row.IsSeal == "0") {
                            return "未盖章";
                        } else if (row.IsSeal == "1") {
                            return "已盖章";
                        }
                    }
                },
                {
                    field: 'option', title: '<input type="checkbox" id="ck_all"/>', align: 'center', width: 80, sortable: false,
                    formatter: function (value, row, index) {
                        if (row.IsSeal == "0") {
                            return '<input type="checkbox" data-category="'+row.Id+'" name="ckId" value="' + row.IsSeal + '" />';
                        } else if (row.IsSeal == "1") {
                            return '';
                        }
                    }
                }, 
            ]],
            onLoadSuccess: function (data) {
                $('#GetWaitPactList').datagrid('clearChecked');
                //点击全选
                $("#ck_all").click(function () {
                    if ($(this)[0].checked) {
                        var names = document.getElementsByName("ckId");
                        for (var i = 0; i < names.length; i++) {
                            names[i].checked = true;
                            var arr = $('#WaitPactList').datagrid('getData');
                            for (let i = 0; i < arr.rows.length; i++) {
                                let item = arr.rows[i];
                                if (item.IsSeal == "0") {
                                    $('#WaitPactList').datagrid('selectRow', i);
                                };
                            }
                        }
                    }
                    else {
                        $("input[name='ckId']").attr("checked", false);
                        var arr = $('#WaitPactList').datagrid('getData');
                        for (let i = 0; i < arr.rows.length; i++) {
                            let item = arr.rows[i];
                            if (item.IsSeal == "0") {
                                $('#WaitPactList').datagrid('unselectRow', i);
                            };
                        }
                    }
                })
                //一个一个选
                $("input[name='ckId']").unbind().bind("click", function () {
                    //总记录数
                    var totolrows = $("input[name='ckId']").length;
                    //选中的记录数
                    var checkrows = $("input[name='ckId']:checked").length;
                    //全选
                    if (checkrows == totolrows) {
                        $("#ck_all")[0].checked=true;
                    }
                    else {
                        $("#ck_all")[0].checked = false;
                    }
                });
            },
            onClickCell: function (rowIndex, field, value) {
                IsCheckFlag = false;
            },
            onSelect: function (rowIndex, rowData) {
                if (!IsCheckFlag) {
                    IsCheckFlag = true;
                    $("#GetWaitPactList").datagrid("unselectRow", rowIndex);
                }
                if (rowData.IsSeal == "1") {
                    $(this).datagrid('unselectRow', rowIndex);
                }
                if (rowData.IsSeal == "0") {
                    //$("input[data-category='" + rowData.Id + "']").checked = true;
                    $("[data-category*='" + rowData.Id + "']")[0].checked = true;
                }
                //总记录数
                var totolrows = $("input[name='ckId']").length;
                //选中的记录数
                var checkrows = $("input[name='ckId']:checked").length;
                //全选
                if (checkrows == totolrows) {
                    $("#ck_all")[0].checked = true;
                }
                else {
                    $("#ck_all")[0].checked = false;
                }
            },
            onUnselect: function (rowIndex, rowData) {
                if (!IsCheckFlag) {
                    IsCheckFlag = true;
                    $("#GetWaitPactList").datagrid("selectRow", rowIndex);
                }
                if (rowData.IsSeal == "0") {
                    $("[data-category*='" + rowData.Id + "']")[0].checked = false;
                }
                //总记录数
                var totolrows = $("input[name='ckId']").length;
                //选中的记录数
                var checkrows = $("input[name='ckId']:checked").length;
                //全选
                if (checkrows == totolrows) {
                    $("#ck_all")[0].checked = true;
                }
                else {
                    $("#ck_all")[0].checked = false;
                }
            }
        });
  	});

小编在上述代码中很多地方为复选框修改状态的地方都是获取的对象+[0].checked=true,这和很多其他博主的帖子存在不同,小编是通过console.log(复选框对象)在页面上查看才知道的,如下图
在这里插入图片描述
在这里插入图片描述

$("#btnPactSeal").click(function () {
    var row = $('#WaitPactList').datagrid('getSelections');
    if (row != null && row.length > 0) {
        var i = 0;
        var Ids = "";
        for (i = 0; i < row.length; i++) {
            Ids += row[i].Id;
            if (i < row.length - 1) {
                Ids += ',';
            } else {
                break;
            }
        }
        console.log(Ids)
        @*$.post("@Url.Action("Edit")?Ids=" + Ids + "&type=1", function (data) {
            if (data.type == 1)
                $("#WaitPactList").datagrid('load');
                GetWaitPactCount();
            $.messageBox5s('@Resource.Tip', data.message);
        }, "json");*@
    } else { $.messageBox5s('@Resource.Tip', '@Resource.PlaseChooseToOperatingRecords'); }
});

解决方法很多,bug也很多,总是要经历弯弯绕绕,然后能力才会有所提升

用对方法才有效率,做对事情才有效果
“麻烦”是自己“处理”不当的结果
“困难”是自己“学习”不够的反射
“挫折”是自己“努力”不足的代价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值