ligerUI---ligerGrid默认选中checkbox
写在前面:
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的更多相关文章
- LigerUI下拉选择列表LigerComboBox中tree的节点初始化默认选中的问题
问题描述 用后台的Json传送tree的数据 前端用js方法来控制选中节点 此方法存在bug 实例: bug问题:无论设置的默认选中值是多少个,前台checkbox最多只显示选中一个,但是内容框中显示 ...
- freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式
今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西 ...
- 在ng-repeat内Checkbox默认选中
Angularjs的ng-repeat是用来循环产生呈现数据. 当我们需要在ng-repeat循环中呈现一系列Checkbox时,某些checkbox选项是默认选中的. 在ASP.NET MVC程序中 ...
- Dtree 添加 checkbox 复选框 可以默认选中
一:目标 要实现用一个树形结构的展示数据,每个节点(除了根节点)前有一个checkbox,同时,点击父节点,则子节点全选或者全不选,当选中了全部子节点,父节点选中:如下图所示: 同时可以在创建的时候, ...
- jQuery设置 select、radio、checkbox 默认选中的值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jsTree的checkbox默认选中和隐藏
jstree复选框自定义显示隐藏和初始化默认选中 首先需要配置 Checkbox plugin "plugins" : ['checkbox'] 设置默认选中状态(checkbox ...
- 关于在layui中的table checkbox 默认选中设置
一.layui版本 layui-v2.4.5 二.设置table的checkbox默认选中 总共有两种方法: 方法1:在返回的json中设置LAY_CHECKED为true,页面上的checkbox就 ...
- 用jQuery的attr()设置option默认选中无效的解决 attr设置属性失效
表单下拉选项使用selected设置,发现第一次默认选中成功,在页面不刷新的情况下,再次下拉,selected属性设置了,默认选中不生效 在手机端有些浏览器用jQuery的attr()方法设置sele ...
- thymeleaf单选回显,多选回显,选回显,下拉默认选中第一个
//默认选中第一个<input type ="radio" name="repaymentType" th:each ="repaymentTy ...
随机推荐
- Git提交到github上
1.本地创建一个目录redis [guosong@etch171 mars171 redis]# pwd /data1/guosong/code/redis [guosong@etch171 mars ...
- Cordic算法——verilog实现
上两篇博文Cordic算法--圆周系统之旋转模式.Cordic算法--圆周系统之向量模式做了理论分析和实现,但是所用到的变量依然是浮点型,而cordic真正的用处是基于FPGA等只能处理定点的平台.只 ...
- .NET之RabbitMQ学习笔记(一)-应用场景
使用场景 1.异步处理 用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行处理方式:注册信息写数据库-发送注册邮件-发送注册短信,等上述三个操作都执行完成 ...
- Python 函数相关概念
高阶函数 数学概念 y=g(f(x)) 在数学和计算机科学中,高阶函数应当至少满足下面一个条件的函数 条件1. 接受一个或多个函数作为参数 条件2. 输出一个函数 举例: def count ...
- C#Dictionary键值对取值用法
必须包含名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不需要唯一的 ...
- 2943:小白鼠排队-poj
2943:小白鼠排队 总时间限制: 1000ms 内存限制: 65536kB 描述 N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按 ...
- CentOS下redis集群安装
环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点 1.下载并解压 cd /root wget http://download.redis.io/releases/ ...
- JavaScript正则表达式(Regular Expression):RegExp对象
第一部分:新建正则表达式 JavaScript中正则表达式是参照Perl 5(一门历史很悠久的语言,现在tiobe编程语言排行依然在10名左右)建立的. 新建正则表达式的方法有两种: 1.使用字面量( ...
- B2B电商系统开发建设的价格费用取决于哪些要素
B2B电子商务系统平台建设开发怎么做?如何搭建一个电商系统网站平台?相信我们的企业商家在搭建电子商务系统的时候都会进行前期的系统策划,但是对于电子商务系统的构建绝大多数人都有一个误区,那就是对于电子商 ...
- python3中的编码与解码(超好理解)
编码和解码是针对数据而言的,数据能干什么呢?无非就是用来显示,储存和传输的: 储存和传输数据当然是希望数据越小越好,所以发明了utf-8这种数据编码显示:它智能将英文用一个字节表示,欧洲的字符用两个字 ...