ligerUI---ligerGrid默认选中checkbox

Posted 蚊蚊蚊蚊蚊170624

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ligerUI---ligerGrid默认选中checkbox相关的知识,希望对你有一定的参考价值。

写在前面:

  ligerGrid中是可以带有checkbox(前面有可以选择打勾勾的框框)的,对于checkbox默认选中 这次项目中也要做,因为一个系统的增删改查,在修改一条数据的时候,是需要对原来的数据进行呈现的,这样用户在修改的时候 ,才知道修改前的数据是怎样的(感觉描述的好变态。。自己想想那个修改的场景。。)

 

  直接上前台代码啦

 

   functionGrid = $("#functionGrid").ligerGrid({
                    checkbox: true,
                    columns: [
                        {display: ‘功能编号‘, name: ‘functionId‘, } ,
                        {display: ‘功能名‘, name: ‘functionName‘, width: 120 } ,
                        { display: ‘功能描述‘, name: ‘functionDes‘, minWidth: 60 },

                    ],
                    url: ‘${baseURL}/getFunctionBySysId.action?systemId=‘+newvalue,
                    //pageSize: 20,
                    usePager: false,
                    width: ‘100%‘,
                    height: ‘99%‘,
                    //初始化选择行
                    isChecked: f_isChecked,
                    //选择事件(复选框)
                    onCheckRow: f_onCheckRow,
                    //选择事件(复选框 全选/全不选)
                    onCheckAllRow: f_onCheckAllRow
                });

 

  涉及到的一些js函数:这些有的也还不是很懂 这些是在官网的demo中看的

//获取functionGrid选中行的数据函数====开始
        function f_onCheckAllRow(checked)
        {
            for (var rowid in this.records)
            {
                if(checked)
                    addCheckedFunction(this.records[rowid][‘functionId‘]);
                else
                    removeCheckedFunction(this.records[rowid][‘functionId‘]);
            }
        }

        /*
        该例子实现 表单分页多选
        即利用onCheckRow将选中的行记忆下来,并利用isChecked将记忆下来的行初始化选中
        */

     var checkedFunction = []; function findCheckedFunction(functionId) { for(var i =0;i<checkedFunction.length;i++) { if(checkedFunction[i] == functionId) return i; } return -1; } function addCheckedFunction(functionId) { if(findCheckedFunction(functionId) == -1) checkedFunction.push(functionId); } function removeCheckedFunction(functionId) { var i = findCheckedFunction(functionId); if(i==-1) return; checkedFunction.splice(i,1); } function f_isChecked(rowdata) { if (findCheckedFunction(rowdata.functionId) == -1) return false; return true; //遍历所有的grid 让其可以被默认选中 /*var str = functionIdArr.join(","); //alert(str.indexOf(rowdata.functionId)) if (str.indexOf(rowdata.functionId)!=-1) return true; return false;*/ } function f_onCheckRow(checked, data) { if (checked) addCheckedFunction(data.functionId); else removeCheckedFunction(data.functionId); } /*function f_getChecked() { alert(checkedFunction.join(‘,‘)); }*/ //获取functionGrid选中行的数据函数========结束

  

  上面的代码已经完成了初始化不选中,但是可以获取你所勾选的数据  并把数据装在checkedFunction这个数组里面,到时候要拿到这些数据只需要对

checkedFunction这个数组进行操作就可以啦(当然啦,这里我是将functionId这个字段作为主键来存放的,可以根据自己的项目进行处理)。

 然后重点来了。。。。如果想要默认选中 。只需要对checkedFunction这个数组进行初始化就可以啦。啊哈哈哈。也就是把你想要初始化选中的数据的主键

放在这个数组里面。。比如我现在要选中functionId为1,2,4的 那么我只需要checkedFunction=[1,2,4]
大功告成。。。。。




 

以上是关于ligerUI---ligerGrid默认选中checkbox的主要内容,如果未能解决你的问题,请参考以下文章

vue2购物车ch4-(筛选v-for 点击的那个设置样式 设为默认地址其他 联动 非循环的列表选中和非选中 删除当前选中的列表)

后台返回数据回显,使用js控制默认选中复选框和下拉框

前端,关于下拉选择

Android中的checkBOX在代码中怎么设置至少选中一个?

jquery实现复选框全选,全不选,反选中的问题

jquery获取选中值