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. Ubuntu不支持rpm安装软件解决方法

    Ubuntu不支持rpm安装软件解决方法 以前经常使用的是RedHat Linux,习惯使用rpm方法安装软件.最近发现Ubuntu系统居然不支持rpm方法安装软件,提示信息如下: root@root ...

  2. scr 和 href 区别

    HTML中的href和src有什么区别? 加载js的时候,用到的是<script style='text/javascript' src='js/demo.js'></script& ...

  3. 【洛谷P2746】[USACO5.3]校园网Network of Schools

    校园网Network of Schools 第一问:Tarjan缩点,搞出每一个连通块,入度为零的连通块是需要必须接受新软件副本的,统计数量即可 第二问:要让整个图构成一个环,显然要将入度为零点和出度 ...

  4. Node.js 笔记02

    一.关于命令 常用命令: dir 列出当前目录下面所有的文件 cd 目录名 进入到指定的目录,. 当前目录, .. 进入上级目录,cd . 当前目录, cd .. 上级目录 md 目录名 创建文件夹 ...

  5. ADO.NET 之 Entity Framework 基础

    Entity Framework(EF)是使用直接映射到应用程序中业务对象的对象模型于关系数据库进行交互.它没有将数据视为行和列的集合,而是将其视为强类型对象(成为实体)的集合. 术语:LinQ to ...

  6. py faster rcnn+ 1080Ti+cudnn5.0

    看了py-faster-rcnn上的issue,原来大家都遇到各种问题. 我要好好琢磨一下,看看到底怎么样才能更好地把GPU卡发挥出来.最近真是和GPU卡较上劲了. 上午解决了g++的问题不是. 然后 ...

  7. linux 使用sqlite3

    :c中使用sqlite3需要调用函数接口操作: sqlite3 *db; int status=sqlite_open("dbname",&db);//打开或者创建数据库 ...

  8. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--E-回旋星空

    链接:https://www.nowcoder.com/acm/contest/90/E 来源:牛客网 1.题目描述 曾经有两个来自吉尔尼斯的人(A和C)恋爱了,他们晚上经常在一起看头上的那片名为假的 ...

  9. BZOJ3098: Hash Killer II(构造)

    Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 2162  Solved: 1140[Submit][Status][ ...

  10. 构建高可靠hadoop集群之4-权限指引

    此文翻译自http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html ...