最近,在項目中用到了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