锁定老帖子 主题:与Ext一起使用DWR时的疑难问题和解答
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-28
引用 请问分页的时候如何处理呢?
能说得更详细一些吗? |
|
返回顶楼 | |
发表时间:2007-11-28
翻页的时候向服务器方发送的参数是错误的。会报error。
this.store = new Ext.data.Store({ proxy: new Ext.data.DWRProxy(Cd.getAll, true), reader: new Ext.data.ListRangeReader( {id:'id',totalProperty:'totalSize'}, recordType ), remoteSort: true }); 这是ds部分; 这是第一次发送时的参数: callCount=1 page=/sms/vcore/index.htm httpSessionId= scriptSessionId=31FA6A5D222B1B7266519FD82C7057FC537 c0-scriptName=Cd c0-methodName=getAll c0-id=0 c0-param0=string:walter c0-param1=boolean:true c0-param2=number:0 c0-param3=number:25 c0-param4=string:tt%20ff batchId=0 这是翻页之后的参数明显数显了null值。 callCount=1 page=/sms/vcore/index.htm httpSessionId= scriptSessionId=31FA6A5D222B1B7266519FD82C7057FC537 c0-scriptName=Cd c0-methodName=getAll c0-id=0 c0-param0=number:25 c0-param1=number:25 c0-param2=string: c0-param4=null:null batchId=1 |
|
返回顶楼 | |
发表时间:2007-11-28
出现了null值,而且参数的顺序也乱了。
我的思路是在提交时,自己定义参数,这样就不会错了。可是我在pagingtoolbar上有找不到分页的事件。或者分页的函数。 |
|
返回顶楼 | |
发表时间:2007-11-28
迫不得已看了DWRProxy和pagingToolbar的源码,发现从Extjs.com
找到的这个DWRProxy可能要修改才能用,因为在上传参数的时候是先arg之后才是params, 这是他的代码。 if(arg.arg) { callParams = arg.arg.slice(); } if(this.pagingAndSort) { callParams.push(params.start); callParams.push(params.limit); callParams.push(sort); } 而PagingToolbar中的参数只有params,所以顺序纠错了,如果把DWRProxy中参数顺序改一下应该就可一了。我先试试。 |
|
返回顶楼 | |
发表时间:2007-11-28
最后决定不这么修改了,这是修改之后的代码。测试通过。
Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, { load : function(params, reader, callback, scope, arg) { if(this.fireEvent("beforeload", this, params) !== false) { var sort; if(params.sort && params.dir) sort = params.sort + ' ' + params.dir; else sort = ''; var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1); var callParams = new Array(); if(arg.arg) { callParams = arg.arg.slice(); }else{ callParams.push(''); //这是我加的两句用来填充有可能出现null值的参数。 callParams.push(false);//反正只要不是null,dwrproxy就能跑,所以... } if(this.pagingAndSort) { callParams.push(params.start); callParams.push(params.limit); callParams.push(sort); } callParams.push(delegate); this.dwrCall.apply(this, callParams); } else { callback.call(scope || this, null, arg, false); } }, loadResponse : function(listRange, reader, callback, scope, arg) { var result; try { result = reader.read(listRange); } catch(e) { this.fireEvent("loadexception", this, null, response, e); callback.call(scope, null, arg, false); return; } callback.call(scope, result, arg, true); }, update : function(dataSet){}, updateResponse : function(dataSet) {} }); |
|
返回顶楼 | |
发表时间:2008-01-17
个人感觉对于grid还是比较容易处理的,但是对于tree怎么使用dwr呢??
|
|
返回顶楼 | |
发表时间:2008-01-18
tree+DWR:
http://extjs.com/forum/showthread.php?t=6217&page=4 |
|
返回顶楼 | |