目的:实现使用jqGrid插件实现后台数据的 异步查询并以表格显示。
环境:为了减少代码,只保留了struts2.
注意点:
1:
笔者也在网上看过一些例子。但是总是不能很顺利地实现。
关键点在于:
jQuery("#jqgrid_json").jqGrid({
datatype: "json",
url:"jsonGridAction",
height: "auto",
width : 750,
colNames:['Inv No', 'Client'],
colModel:[
{name:'no',index:'no', width:60, sorttype:"int"},
{name:'busynessName',index:'busynessName', width:100}
],
jsonReader:{
root : "dataroot",
records: "totalrecords",
page: "currpage",
total: "totalpages",
repeatitems : false
},
viewrecords : true,
multiselect: false,
pager: '#pager2',
rowNum:10,
rowList:[10,20,30],
sortname: 'no',
caption: "jQGrid json Demo"
}).navGrid("#pager2",{edit:false,add:false,del:false});
jsonReader的设置必须跟后台拼写的json数据一致。
比如:
{"totalpages" : "2","currpage" : "1","totalrecords" : "15","dataroot" :
[{"no":"0","busynessName":"name0"},
{"no":"1","busynessName":"name1"},
{"no":"2","busynessName":"name2"},
{"no":"3","busynessName":"name3"}
]
}
2:
jqgrid在实现翻页,排序等功能时,会想后台传递特定参数(ps:jqgrid有自己默认的参数key!!),比如:
{page:“page”,rows:“rows”, sort:“sidx”, order:“sord”, search:“_search”,
nd:“nd”, id:“id”, oper:“oper”, editoper:“edit”, addoper:“add”, deloper:“del”,
subgridid:“id”, npage:null, totalrows:“totalrows”}
对于这些key,需要在action中设置set/get函数,当然不需要全部设置。
如果还有什么不清楚的,请留言。有代码可以参考哦!