前面的爲JqGrid添加dwr支持涉及到了修改jqgrid代碼的問題,不方便進行升級。 javascript
現採用另一種方法。缺點是不能觸發一些事件,如開始加載 ,加載完成,還有loading標誌,對loadonce及其它一些支持不到。主要是dwrcallback方法沒法訪問到jqgrid內部的一些操做和屬性的緣由。應該是能夠獲取的,只是暫時不知道。呵 java
後臺dwr接口方法爲:String [] properties, String condition,String sortField, String order, int curPage, int limit app
假調postData參數:[ [ "id", "name" ], "true" ], post
設置datatype參數爲: this
function(postData) { JsonUtil.alertJson(postData); var formatedPostData = []; formatedPostData[formatedPostData.length] = postData[0]; formatedPostData[formatedPostData.length] = postData[1]; formatedPostData[formatedPostData.length] = postData.sidx; formatedPostData[formatedPostData.length] = postData.sord; formatedPostData[formatedPostData.length] = postData.page; formatedPostData[formatedPostData.length] = postData.rows; JsonUtil.alertJson(formatedPostData); var dwrargs = formatedPostData; 以上一段語句能夠寫在serializeGridData:裏,postdata,先通過serializeGridData處理,而後轉給datatype方法的postData。因此參數處理,能夠寫在另一個方法當中,
下面就調用UserService.dwrFunForJqGrid.apply()方法來調用javascript方法,注意dwr設置中的回調方法 dwrsettings = { asyn c : true, httpMethod : "POST", timeout : "3000", callback : function(data, st, xhr) { JsonUtil.alertJson(data); jQuery("#gridTable")[0].addJSONData(data); } }; dwrargs[dwrargs.length] = dwrsettings; UserService.dwrFunForJqGrid.apply(this, dwrargs); },