最近,在项目中用到了jqGrid进行数据的显示。但是一直不明白数据是怎么进行传递的。在jqGrid中,参数rowNum定义了每页显示多少行数据,而在Action中则使用rows属性定义了每页中显示的数据行数。所以,一直不明白两个参数是怎样联系的。
今天,在网上找到了合理的解释。jqGrid中PrmNames选项用于设置jqGrid将要向Server传递的参数名称。默认情况下包含rows:"rows",第一个rows从rowNum取值,第二个rows表示向Server传递数据时,使用的参数名为" rows "。因此才会将rowNum的值传递给了Server中的rows属性。
如果PrmNames选项中修改为rows:"pageSize",那么会将rowNum的数据值使用pageSize参数向Server进行传递,相应的Action中也就需要pageSize属性接收每页显示的数据行数了。
下面贴上prmNames选项和jsonReader选项的相关参数说明。prmNames : {
page:"page", // 表示请求页码的参数名称
rows:"rows", // 表示请求行数的参数名称
sort: "sidx", // 表示用于排序的列名的参数名称
order: "sord", // 表示采用的排序方式的参数名称
search:"_search", // 表示是否是搜索请求的参数名称
nd:"nd", // 表示已经发送请求的次数的参数名称
id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称
oper:"oper", // operation参数名称
editoper:"edit", // 当在edit模式中提交数据时,操作的名称
addoper:"add", // 当在add模式中提交数据时,操作的名称
deloper:"del", // 当在delete模式中提交数据时,操作的名称
subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称
npage: null,
totalrows:"totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal
}
jsonReader用于设置如何解析从Server获取的json数据。
jsonReader : {
root: "rows", // json中代表实际模型数据的入口,也就是Action中数据列表的名称
page: "page", // json中代表当前页码的数据
total: "total", // json中代表页码总数的数据
records: "records", // json中代表数据行总数的数据
repeatitems: true, // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素(即可以json中元素可以不按顺序);而所使用的name是来自于colModel中的name设定。
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {
root:"rows",
repeatitems: true,
cell:"cell"
}
}
参考文章:http://blog.csdn.net/lijiangjava/article/details/52170106