1. prmNames : {
  2. page:"page",    // 表示请求页码的参数名称
  3. rows:"rows",    // 表示请求行数的参数名称
  4. sort: "sidx", // 表示用于排序的列名的参数名称
  5. order: "sord", // 表示采用的排序方式的参数名称
  6. search:"_search", // 表示是否是搜索请求的参数名称
  7. nd:"nd", // 表示已经发送请求的次数的参数名称
  8. id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称
  9. oper:"oper",    // operation参数名称(我暂时还没用到)
  10. editoper:"edit", // 当在edit模式中提交数据时,操作的名称
  11. addoper:"add", // 当在add模式中提交数据时,操作的名称
  12. deloper:"del", // 当在delete模式中提交数据时,操作的名称
  13. subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称
  14. npage: null,
  15. totalrows:"totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal
  16. }

可以通过这个选项来自定义当向Server发送请求时,默认发送的参数名称。
这个参数很重要也很有用,正是通过这个参数,可以方便的改变默认的request的参数,以符合Server端的需要。比如在prmNames中
search默认的值为"_search",这在Struts2的Action中不太方便命名成员变量和getter/ setter。因此可以使用
prmNames: {search: 'search'}
来改变这一默认值为"search",这在Struts2的Action对象中就很好设置getter/
setter了,即getSearch()和setSearch()。当然其他名字也是可以的。

1.2 jsonReader选项

jsonReader是jqGrid的一个重要选项,用于设置如何解析从Server端发回来的json数据。其默认值为:

  1. jsonReader : {
  2. root: "rows",   // json中代表实际模型数据的入口
  3. page: "page",   // json中代表当前页码的数据
  4. total: "total", // json中代表页码总数的数据
  5. records: "records", // json中代表数据行总数的数据
  6. repeatitems: true, // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素(即可以json中元素可以不按顺序);而所使用的name是来自于colModel中的name设定。
  7. cell: "cell",
  8. id: "id",
  9. userdata: "userdata",
  10. subgrid: {
  11. root:"rows",
  12. repeatitems: true,
  13. cell:"cell"
  14. }
  15. }

可以这样理解,prmNames设置了如何将Grid所需要的参数传给Server,而jsonReader设置了如何去解析从Server端传回来的
json数据。如果没有设置jsonReader的话,jqGrid将会根据默认的设置来解析json数据,并显示在表格里。但如果传回来的json数
据,不太符合默认设置(比如内部的结构名不太一样),那么就有必要修改这一设置。比如:

  1. jsonReader: {
  2. root:"gridModel",
  3. page: "page",
  4. total: "total",
  5. records: "record",
  6. repeatitems : false
  7. }

注1:据其他网友的文章,如果设置repeatitems为false,不但数据可以乱序,而且不用每个数据元素都要具备,用到哪个找到哪个就可以了。实验却是如此。
注2:cell、id在repeatitems为true时可以用到,即每一个记录是由一对id和cell组合而成,即可以适用另一种json结构。援引文档中的例子:

repeatitems为true时:

  1. jQuery("#gridid").jqGrid({
  2. ...
  3. jsonReader : {
  4. root:"invdata",
  5. page: "currpage",
  6. total: "totalpages",
  7. records: "totalrecords"
  8. },
  9. ...
  10. });

json结构为:

  1. {
  2. "totalpages": "xxx",
  3. "currpage": "yyy",
  4. "totalrecords": "zzz",
  5. "invdata" : [
  6. {"id" :"1", "cell" :["cell11", "cell12", "cell13"]},   // cell中不需要各列的name,只要值就OK了,但是需要保持对应
  7. {"id" :"2", "cell" :["cell21", "cell22", "cell23"]},
  8. ...
  9. ]
  10. }

repeatitems为false时:

  1. jQuery("#gridid").jqGrid({
  2. ...
  3. jsonReader : {
  4. root:"invdata",
  5. page: "currpage",
  6. total: "totalpages",
  7. records: "totalrecords",
  8. repeatitems: false,
  9. id: "0"
  10. },
  11. ...
  12. });

json结构为:

  1. {
  2. "totalpages" : "xxx",
  3. "currpage" : "yyy",
  4. "totalrecords" : "zzz",
  5. "invdata" : [
  6. {"invid" : "1","invdate":"cell11", "amount" :"cell12", "tax" :"cell13", "total" :"1234", "note" :"somenote"}, // 数据中需要各列的name,但是可以不按列的顺序
  7. {"invid" : "2","invdate":"cell21", "amount" :"cell22", "tax" :"cell23", "total" :"2345", "note" :"some note"},
  8. ...
  9. ]
  10. }

2. colModel的重要选项

和jqGrid一样colModel也有许多非常重要的选项,在使用搜索、排序等方面都会用到。这里先只说说最基本的。

    • name:为Grid中的每个列设置唯一的名称,这是一个必需选项,其中保留字包括subgrid、cb、rn。
    • index:设置排序时所使用的索引名称,这个index名称会作为sidx参数(prmNames中设置的)传递到Server。
    • label:当jqGrid的colNames选项数组为空时,为各列指定题头。如果colNames和此项都为空时,则name选项值会成为题头。
    • width:设置列的宽度,目前只能接受以px为单位的数值,默认为150。
    • sortable:设置该列是否可以排序,默认为true。
    • search:设置该列是否可以被列为搜索条件,默认为true。
    • resizable:设置列是否可以变更尺寸,默认为true。
    • hidden:设置此列初始化时是否为隐藏状态,默认为false。
    • formatter:预设类型或用来格式化该列的自定义函数名。常用预设格式有:integer、date、currency、number等

jqgrid-parmNames和jsonReader的使用,以及json的返回格式(转)的更多相关文章

  1. SSM之JSON通用返回格式

    /** * 通用的返回的类 * */ public class Result { //状态码 100-成功 200-失败 private int code; //提示信息 private String ...

  2. 一百零一:CMS系统之自定义restful风格json返回格式和内容

    鉴于flask-restful用起来太麻烦,这里自定义json统一返回格式和内容 from flask import jsonify class HttpCode: """ ...

  3. .NET 自定义Json序列化时间格式

    .NET 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规 ...

  4. JSON.Net 自定义Json序列化时间格式

    JSON.Net 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认 ...

  5. Jackson 通过自定义注解来控制json key的格式

    Jackson 通过自定义注解来控制json key的格式 最近我这边有一个需求就是需要把Bean中的某一些特殊字段的值进行替换.而这个替换过程是需要依赖一个第三方的dubbo服务的.为了使得这个转换 ...

  6. [转]SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意

    一.SpringMVC使用@ResponseBody时返回json的日期格式 前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co ...

  7. ASP.NET Web API 配置返回的json字段的格式以及Action返回HttpResponseMessage类型和IHttpActionResult类型

    1. 对于返回的Json对象格式是以“帕斯卡”风格的(例如“FirstName”),然而我们的Api有很大的可能被带有Javascript的客户端消费,对于JS开发者来说可能更适合“驼峰”风格(例如” ...

  8. SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意

    一.SpringMVC使用@ResponseBody时返回json的日期格式 前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co ...

  9. 本文使用springMVC和ajax,实现将JSON对象返回到页面

    一.引言 本文使用springMVC和ajax做的一个小小的demo,实现将JSON对象返回到页面,没有什么技术含量,纯粹是因为最近项目中引入了springMVC框架. 二.入门例子 ①. 建立工程, ...

随机推荐

  1. Reverse Polish notation

    Reverse Polish notation is a notation where every operator follows all of its operands. For example, ...

  2. An error occurred during the installation of assembly 'Microsoft.VC90.ATL or 'Microsoft.VC80.ATL'

    An error occurred during the installation of assembly 'Microsoft.VC90.ATL or 'Microsoft.VC80.ATL' 下载 ...

  3. 时间戳转化为时间&&截取时间的年月日

    时间戳转化为正常的时间格式 function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { // 在这里 date.getFullYear() + ' ...

  4. c# 本地完整缓存组件

    用了一段时间java,java实现服务端程序很简单,有很多公共开源的组件或者软件.但是c#的很少. 现在准备自己写点东西,学习下新的东西,总结下c#的内容以及我们经常用的内容,抽离成类,组件,模型.方 ...

  5. 使用Windows服务定时去执行一个方法的三种方式

    方式一:使用System.Timers.Timer定时器 public partial class Service1 : ServiceBase { private UnitOfWork unitOf ...

  6. Intellij IDEA切换maven

    问题描述: IDEA自带Maven,但不想用,想用自己安装的. 解决方案: File->Settings(快捷键:Ctrl+Alt+S) 这里分为了两个,竟然还有默认配置一说,上面的只是修改了当 ...

  7. Git详解及github的使用

    1.Devops介绍 1.Devops是什么 开发 development 运维 operations 2.Devops能干嘛 提高产品质量 1 自动化测试 2 持续集成 3 代码质量管理工具 4 程 ...

  8. CVE-2018-1111漏洞复现-环境搭建与dhcp命令注入

    0×01 前言 2018年5月,在Red Hat Enterprise Linux多个版本的DHCP客户端软件包所包含的NetworkManager集成脚本中发现了命令注入漏洞(CVE-2018-11 ...

  9. Java : java基础(2) 集合&正则&异常&File类

    Obj 方法: hashCode() 返回内存地址值, getClass() 返回的时运行时类, getName() 返回类名, toString() 把名字和hashCode() 合在一起返回,如果 ...

  10. python-集合类型

    集合具有唯一性(集合中的元素各不相同),无序性,确定性(集合中的元素是不可改变的,不能是列表,字典以及集合本身) 1.add(self, *args, **kwargs),union(self, *a ...