Json數據
需要定義jsonReader來跟服務器端返回的數據做對應,其默認值:
·?jsonReader?:?{
·??????root:?"rows",
·??????page:?"page",
·??????total:?"total",
·??????records:?"records",
·??????repeatitems:?true,
·??????cell:?"cell",
·??????id:?"id",
·??????userdata:?"userdata",
·??????subgrid:?{root:"rows",
·?????????repeatitems:?true,
·????????cell:"cell"
·??????}
這樣服務器端返回的數據格式:
·?{
·???total:?"xxx",
·???page:?"yyy",
·???records:?"zzz",
·???rows?:?[
·?????{id:"1",?cell:["cell11",?"cell12",?"cell13"]},
·?????{id:"2",?cell:["cell21",?"cell22",?"cell23"]},
·???????...
·???]
·?}
jsonReader的屬性
total
總頁數
page
當前頁
records
查詢出的記錄數
rows
包含實際數據的數組
id
行id
cell
當前行的所有單元格
自定義:
·?jQuery("#gridid").jqGrid({
·?...
·????jsonReader?:?{
·???????root:"invdata",
·???????page:?"currpage",
·???????total:?"totalpages",
·???????records:?"totalrecords",
·???????cell:?"invrow"
·????},
·?...
·?});
·?totalpages:?"xxx",
·???currpage:?"yyy",
·???totalrecords:?"zzz",
·???invdata?:?[
·?????{id:"1",?invrow:["cell11",?"cell12",?"cell13"]},
·?????{id:"2",?invrow:["cell21",?"cell22",?"cell23"]},
·???????...
·???]
repeatitems
指明每行的數據是可以重復的,如果設為false,則會從返回的數據中按名字來搜索元素,這個名字就是colModel中的名字
·?jsonReader?:?{
·???????root:"invdata",
·???????page:?"currpage",
·???????total:?"totalpages",
·???????records:?"totalrecords",
·???????repeatitems:?false,
·???????id:?"0"
·????}
·??totalpages:?"xxx",
·???currpage:?"yyy",
·???totalrecords:?"zzz",
·???invdata?:?[
·?????{invid:"1",invdate:"cell11",?amount:"cell12",?tax:"cell13",?total:"1234",?note:"somenote"},
·?????{invid:"2",invdate:"cell21",?amount:"cell22",?tax:"cell23",?total:"2345",?note:"some?note"},
·???????...
·???]
此例中,id屬性值為“invid”。
一旦當此屬性設為false時,我們就不必把所有在colModel定義的name值都賦值。因為是按name來進行搜索元素的,所以他的排序也不是按colModel中指定的排序結果。
用戶數據(user data)
在某些情況下,我們需要從服務器端返回一些參數但并不想直接把他們顯示到表格中,而是想在別的地方顯示,那么我們就需要用到userdata標簽
·?jsonReader:?{
·???...
·???userdata:?"userdata",
·???...
·?}
·?{
·???total:?"xxx",
·???page:?"yyy",
·???records:?"zzz",
·???userdata:?{totalinvoice:240.00,?tax:40.00},
·???rows?:?[
·?????{id:"1",?cell:["cell11",?"cell12",?"cell13"]},
·?????{id:"2",?cell:["cell21",?"cell22",?"cell23"]},
·?????...
·???]
·?}
在客戶端我們可以有下面兩種方法得到這些額外信息:
1.??????jQuery("grid_id").getGridParam('userData')
2.??????jQuery("grid_id").getUserData()
3.??????jQuery("grid_id").getUserDataItem(?key?)