JqGrid相关操作备忘方法列表
1.获得当前列表行数:$("#gridid").getGridParam("reccount");
2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id);
3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid');
4.选中行:$("#jqGrid").setSelection("1", true);(Toggles a selection of the row with id =rowid; ifonselectrowis true (the default) then the event onSelectRow is launched, otherwise it is not.)//true:重新加载表格数据, false:不重新加载表格数据
5.重置选中行:$("#jqgrid").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
6.清除:$("#jqgrid").clearGridData();//Clears the currently loaded data from grid. If the clearfooter parameter is set to true, the method clears the data placed on the footer row.
7.$("#jqgrid").setCell(rowid,colname,nData,cssp,attrp);
//This method can change the content of particular cell and can set class or style properties. Where:
colnamethe name of the column (this parameter can be a number (the index of the column) beginning from 0
datathe content that can be put into the cell. If empty string the content will not be changed
classif class is string then we add a class to the cell using addClass; if class is an array we set the new css properties via css
propertiessets the attribute properies of the cell,
8.获取选中行ID
var rowid = $("#jqgrid").jqGrid('getGridParam','selrow');
var rowid = $("#searchResultList").getGridParam("selrow");
var rowData = $("#searchResultList").getRowData(rowid); /根据行ID,获取选中行的数据(根据)
=================重点讲解================
1.1 prmNames选项
prmNames是jqGrid的一个重要选项,用于设置jqGrid将要向Server传递的参数名称。其默认值为:
- 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
- }
可以通过这个选项来自定义当向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数据。其默认值为:
- jsonReader:{
- root:"rows",//json中代表实际模型数据的入口
- 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"
- }
- }
可以这样理解,prmNames设置了如何将Grid所需要的参数传给Server,而jsonReader设置了如何去解析从Server端传回来的json数据。如果没有设置jsonReader的话,jqGrid将会根据默认的设置来解析json数据,并显示在表格里。但如果传回来的json数据,不太符合默认设置(比如内部的结构名不太一样),那么就有必要修改这一设置。比如:
- jsonReader:{
- root:"gridModel",
- page:"page",
- total:"total",
- records:"record",
- repeatitems:false
- }
注1:据其他网友的文章,如果设置repeatitems为false,不但数据可以乱序,而且不用每个数据元素都要具备,用到哪个找到哪个就可以了。实验却是如此。
注2:cell、id在repeatitems为true时可以用到,即每一个记录是由一对id和cell组合而成,即可以适用另一种json结构。援引文档中的例子:
repeatitems为true时:
- jQuery("#gridid").jqGrid({
- ...
- jsonReader:{
- root:"invdata",
- page:"currpage",
- total:"totalpages",
- records:"totalrecords"
- },
- ...
- });
json结构为:
- {
- "totalpages":"xxx",
- "currpage":"yyy",
- "totalrecords":"zzz",
- "invdata":[
- {"id":"1","cell":["cell11","cell12","cell13"]},//cell中不需要各列的name,只要值就OK了,但是需要保持对应
- {"id":"2","cell":["cell21","cell22","cell23"]},
- ...
- ]
- }
repeatitems为false时:
- jQuery("#gridid").jqGrid({
- ...
- jsonReader:{
- root:"invdata",
- page:"currpage",
- total:"totalpages",
- records:"totalrecords",
- repeatitems:false,
- id:"0"
- },
- ...
- });
json结构为:
- {
- "totalpages":"xxx",
- "currpage":"yyy",
- "totalrecords":"zzz",
- "invdata":[
- {"invid":"1","invdate":"cell11","amount":"cell12","tax":"cell13","total":"1234","note":"somenote"},//数据中需要各列的name,但是可以不按列的顺序
- {"invid":"2","invdate":"cell21","amount":"cell22","tax":"cell23","total":"2345","note":"somenote"},
- ...
- ]
- }
JqGrid操作详解与应用
本文详细介绍了JqGrid的常用操作方法,包括获取列表行数、获取选中行数据、刷新列表、选中与重置行、清除数据、单元格修改与样式设置等,并解释了prmNames和jsonReader选项的作用,以及如何根据实际需求进行定制。
519

被折叠的 条评论
为什么被折叠?



