easyui:datagrid中的checkbox的实现

        $("#tb_sysAttr").datagrid({
            columns:[[
                {field:'read',title:'可读',width:150,align:'center',
                    formatter: function(value){
                        return (value==1)? '': '';
                    }
                },
                {field:'write',title:'可写',width:250,align:'center',
                    formatter: function(value){
                        return (value==1)? '': '';
                    }}
            ]]
        })

上面是完整js代码,我后台传来的数据是 1/0,为1时,checkbox勾选,为0时,不勾选。

要达到我们设想的效果,只需要加一个formatter即可,再用一个?: ,生成指定状态的checkbox即可。

不过此时,你会发现,全选并不好用:

解决方案如此:(来自于M同学)

利用title属性,在表头加上一个我们自己的checkbox。

当它勾选上时,触发我们预设的getAll函数函数,把其所在列全部勾选。

{field:'read',title:'可读:',checkbox:false,width:150,align:'center',

    formatter: function(value){
        return (value==1)? '': '';
    }
},

/*权限设置中 全选的实现*/
function getall(This) {
    var rows = $("#tb_sysAttr").datagrid('getRows');
    var id=document.getElementById(This.id);
    console.log(id.checked);
    if(id.checked) {
        for (var a = 0; rows[a]!=null; a++)
            if(This.id=="read_a")
                rows[a].read = 1; //获取指定列
            else
                rows[a].write=1;
    }
    else {
        for (var a = 0; rows[a]!=null; a++)
            if(This.id=="read_a")
                rows[a].read = 0; //获取指定列
            else
                rows[a].write=0;
    }
    $("#tb_sysAttr").datagrid('loadData',rows);
    console.log(rows);
}

版权声明:本文为weixin_41525190原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。