Struts2與jqGrid的參數傳遞,struts2jqgrid傳遞
最近,在項目中用到了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