jqGrid中不同datatype,selrow单选selarrrow多选不同的纠结
来源:互联网 发布:小米手机数据网络设置 编辑:程序博客网 时间:2024/06/11 20:49
之所以写这个主题的博客,是因为太纠结了,就是很简单的问题,但是就是搞不明白,虽然项目中功能没问题,但是这个问题,想了好半天,也没有结果,最后不了了之。
若有理解的,可以留下您的大名~
废话少说,直奔主题:
jqGrid是jquery的grid插件,前台主要应用这个js来实现grid表格,效果如下:
jqGrid其他的就不过多说了,在此说一下我的问题。
jqGrid中参数:option:selrow,selarrrow定义
selrow:This option is read only. Contain the id of the last selected row. If you sort or apply a pagging this options is set to null【这个参数是只读的,获取最后选中行的id,如果你排序或分页,这个参数设置为null,默认是null,并且不可更改】
selarrrow:This options is read only. Determines the currently selected rows when multiselect is set to true. This is one dimensional array and the values in the array correspond to the selected id's in the grid.【参数是只读的,当multiselect设置为true时,使用这个参数来获取目前选中行,她是数组形式,数组中的值就是表格中被选中id集合】
grid展示数据有两种形式:
一种:客户端自己访问,然后把访问到的data赋值给grid。另一种:grid直接访问server。
先说第一种:前几个模块都是使用第一种方式,也就是使用datatype为local形式,把访问到data以数组形式赋值给grid。其中不涉及到分页。
第一种:
$.ajax({ url:"", success: function(msg){ posData = eval(msg); $("#tblPosition").jqGrid('setGridParam', { datatype: 'local', data:posData }).trigger("reloadGrid"); });
这种形式下,使用单选,selrow,获取最后一次选中行的id,这样获取这条记录:
var slt = $("#tblPosition").jqGrid('getGridParam','selrow'); 选中行的id
var row= $("#tblPosition").jqGrid('getRowData', slt); row就是选中行,以json形式的记录
alert(row.grid表格中的字段);
使用多选时,selarrow:获取的选中行的id's。这样的获取这条记录的某一个字段时,如下:
var slt = $("#tblPosition").jqGrid('getGridParam','selarrrow');
for(var i=0; i<slt.length; i++){
var row=$("#tblPosition").jqGrid('getRowData', slt[i]);
alert(row.grid表格中的字段);
}
第二种:jqgrid直接访问server,其中用到分页【因为后几个模板数据最少是几十万条数据】
$("#templatemappingList").jqGrid({url: path + "/rcp/rml/getAllTemplateMaping.do",datatype:"json",colNames:tagArray,pager:"#pager",rownumbers:true,rowNum:15,rowList:[10,15,20],multiselect:true,colModel:[ //省略 ], jsonReader : { root:"rows", page: "page", total: "total", records: "records", repeatitems: false, id: "0" }});
这种形式下,使用单选,selrow时使用如上:var slt = $("#tblPosition").jqGrid('getGridParam','selrow'); 此时获取的slt不是行id,而是colModel中第一个的值【无论是显示还是hidden】。
使用多选selarrrow时使用依然如上:var slt = $("#tblPosition").jqGrid('getGridParam','selarrrow');此时获取的不是行id的数组,而是colModel中第一个值数组【无论是显示还是hidden】。
程序中恰巧第一个是主键,所以一直没有问题。
同时,官网demo中,有第二个例子,因colModel中第一个是数值型,和行不太容易区分,隐隐约约感觉到和我的一样,但是不敢太确定。官网上是使用php,也不是html文件形式,若单个文件,可以更改其js,进行测试。但是这个没有测试。
目前我使用两种形式的grid,也算历程经验。但是我觉得,selrow、selarrrow应该是一致的,但是我项目中效果是如上。有相同经历的或有经验的,请留下您宝贵的指导(*^__^*)
- jqGrid中不同datatype,selrow单选selarrrow多选不同的纠结
- jqgrid表格单双行样式不同
- asp.net中jqgrid根据不同类别头部显示不同的列的实现方法
- jqgrid的multiselect 中checkbox复选框只能单选
- php表单中不同单选按钮表单提交到不同页面,利用submit()即可
- js实现两个单选按钮,选不同的选项弹出显示不同的下拉框
- jqgrid 单选
- jqgrid 实现单选
- jqGrid单选实现
- 新手学习心得之一:echo 中单双引号的不同
- jqGrid单选一行实现
- jqgrid setCell 根据单元格 值的不同 设置不同的样式 属性
- 不同机器中不同变量的大小
- 单次循环,搜索出两个数组中不同的一段数据,把不同的数据存进EEPROM
- C#不同窗体的切换效果及单选控件属性变化
- JAVA单聊模式的不同写法
- jqGrid自适应展示不同列数
- JavaScript中Arrays的不同
- ScriptManager之EnablePageMethods属性
- 判断两个有序数组中是否有相同的数字
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- 查看数据库sql执行效率
- Android工具HierarchyViewer 代码导读(1) -- 功能实现演示
- jqGrid中不同datatype,selrow单选selarrrow多选不同的纠结
- 七个常用aps.net CMS系统
- ios开发岗位要求
- 七个垂手可得的敏捷开发工具
- eclipse中java web项目 隐藏文件、目录解密
- 用layer-list一次加载多个层次图片
- IOS 开发中对url中的参数进行URLEncode编码的实现
- Tracing Techniques for Listeners in 11.2 RAC Environments (Doc ID 1325284.1)
- Rational Rose+EDraw Max(亿图)