前面的为JqGrid添加dwr支持涉及到了修改jqgrid代码的问题,不方便进行升级。
现采用另外一种方法。缺点是不能触发一些事件,如开始加载 ,加载完成,还有loading标志,对loadonce及其它一些支持不到。主要是dwrcallback方法无法访问到jqgrid内部的一些操作和属性的原因。应该是可以获取的,只是暂时不知道。呵
后台dwr接口方法为:String [] properties,String condition,String sortField,String order,int curPage,int limit
假调postData参数:[ [ "id","name" ],"true" ],
设置datatype参数为:
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 = { async : 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); },