写在前面:

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

  直接上前台代码啦:

方法1:

   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]
大功告成。。。。。

方法2:

方法1是看官方demo中的例子来,当时也不是很明白上面各种函数的作用,也没有下去深究,下面可以用方法2,比方法1简单,所用的函数也不多,不过两者的原理都 是差不多的,都是将要默认选中的数据保存在一个集合或者数组里面,然后通过isChecked: f_isChecked,参数来调用一个函数,这个f_isChecked函数的作用就是 将数组或集合里面的数据拿出来与ligerGrid中的每一行数据进行比较,如果相等,就返回true表示勾选 前台页面代码:
funcGrid = $("#funcGrid").ligerGrid({
columns : [
{display: '功能编号', name: 'functionId',hide:'true'} ,
{id:'functionName',display: '功能名', name: 'functionName', width: 200 } ,
{ display: '功能描述', name: 'functionDes', minWidth: 60 },
{display : '功能fId', name : 'fId', type : "text", hide:'true'}
],
//sortName : 'functionId',
onSelectRow : function(rowdata, rowindex, rowobj) {
},
width : '100%',
height : '100%',
checkbox : true,
usePager : false,
frozenRownumbers : false,
frozenCheckbox : false,
//rowHeight : 23,
alternatingRow : false,
isChecked: f_isChecked,
tree : {
columnId : 'functionName',
idField : 'functionId', //id字段
parentIDField : 'fId', //parent id 字段
isExpand : false
}
});

重点就在代码中标红的,然后调用的函数如下:这里的funcData是一个数组


var funcData = [];//这里存放你从后台拿到的要默认勾选的数据,现在这里是空的,需要你自己去获取数据
function f_isChecked(rowdata)
{
if(funcData.length > 0){
for(var i =0;i<funcData.length;i++)
{
if(funcData[i].functionId == rowdata.functionId)
return true;
}
}
return false;
}

这样就完成了修改数据  默认勾选了,当点击添加按钮,想要添加数据的时候,如何拿到ligerGrid中checkbox的值??只需要funcGrid.getSelecteds()获取所有的选中行集合就可以了

这种方法真的是很简单。。。。

在项目中不一定完全按照上面的方法,懂了代码的逻辑,学会举一反三。。啦啦啦啦~~~~



ligerUI---ligerGrid默认选中checkbox的更多相关文章

  1. LigerUI下拉选择列表LigerComboBox中tree的节点初始化默认选中的问题

    问题描述 用后台的Json传送tree的数据 前端用js方法来控制选中节点 此方法存在bug 实例: bug问题:无论设置的默认选中值是多少个,前台checkbox最多只显示选中一个,但是内容框中显示 ...

  2. freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式

    今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西 ...

  3. 在ng-repeat内Checkbox默认选中

    Angularjs的ng-repeat是用来循环产生呈现数据. 当我们需要在ng-repeat循环中呈现一系列Checkbox时,某些checkbox选项是默认选中的. 在ASP.NET MVC程序中 ...

  4. Dtree 添加 checkbox 复选框 可以默认选中

    一:目标 要实现用一个树形结构的展示数据,每个节点(除了根节点)前有一个checkbox,同时,点击父节点,则子节点全选或者全不选,当选中了全部子节点,父节点选中:如下图所示: 同时可以在创建的时候, ...

  5. jQuery设置 select、radio、checkbox 默认选中的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. jsTree的checkbox默认选中和隐藏

    jstree复选框自定义显示隐藏和初始化默认选中 首先需要配置 Checkbox plugin "plugins" : ['checkbox'] 设置默认选中状态(checkbox ...

  7. 关于在layui中的table checkbox 默认选中设置

    一.layui版本 layui-v2.4.5 二.设置table的checkbox默认选中 总共有两种方法: 方法1:在返回的json中设置LAY_CHECKED为true,页面上的checkbox就 ...

  8. 用jQuery的attr()设置option默认选中无效的解决 attr设置属性失效

    表单下拉选项使用selected设置,发现第一次默认选中成功,在页面不刷新的情况下,再次下拉,selected属性设置了,默认选中不生效 在手机端有些浏览器用jQuery的attr()方法设置sele ...

  9. thymeleaf单选回显,多选回显,选回显,下拉默认选中第一个

    //默认选中第一个<input type ="radio" name="repaymentType" th:each ="repaymentTy ...

随机推荐

  1. 脱掉Golang的第一层衣裳 golang入坑系列

    读前必读,博客园的文章并非最新,想看最新还是建议点击这里.博客园的文章是为了方便不能FQ的同学,同步而来的.不放在博客园,不是不支持国产,而是博客园的排版太难看了,太难看了,太难看了!而且还没有客户端 ...

  2. Oracle函数sys_connect_by_path 详解

    Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为:       s ...

  3. CocoaPods 安装及使用

    1.开启 terminal 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/ 3.使用新的源 $ gem sources -a ...

  4. 2017EIS CTFwriteup

    EIS2017也就是2017年高校网络信息安全管理 运维挑战赛,全国一百多所高校参赛,侥幸拿了个地区三等奖,事先不知道理论赛占分比,不然就会是二等奖(吐槽),生活没有如果,下次努力吧. 比赛已经结束大 ...

  5. Python 面向对象(四) 反射及其魔术方法

    反射 reflection 也有人称之为自省 作用: 运行时获取.添加对象的类型定义信息,包括类 内建方法: getattr(object, name[, default])   返回object对象 ...

  6. YOLO 算法框架的使用一(初级)

    YOLO官方框架使用C写的,性能杠杠的,YOLO算法,我就不做过多介绍了.先简单介绍一下这个框架如何使用.这里默认是yolo2,yolo1接近过时.环境 推荐ubuntu 或者centos YOLO是 ...

  7. CYQ.Data 正式支持 DotNET Core 版本发布

    闲话几句: 自从上周开始,IOS人员逝去,就开始接手IOS的代码了. 并开始整理IOS的代码(包括当时一开始设计的开发框架). 在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及 ...

  8. shell,bash,zsh,console,terminal到底是什么意思,它们之间又是什么关系?

    原文链接 终端(terminal,或者叫物理终端):是一种设备,不是一个程序,一般说的就是能提供命令行用户界面的设备,典型的是屏幕和键盘,或其他的一些物理终端.虚拟终端:屏幕和键盘只是一个终端,可能不 ...

  9. 调用支付宝第三方接口(沙箱环境) SpringMVC+Maven

    一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登陆

  10. CCF-201503-2-数字排序

    问题描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序 ...