Dancie2002 2008-11-07 23:58
浏览 451
已采纳

Ext.PagingToolbar带条件查询问题

一个JSON Store,默认查询全部都没问题
一开始是
store.load({params:{start:0,limit:10}});
加了个条件,
store.load({params:{start:0,limit:10,name:'xxxx'}});
可以返回查询结果
但是我点下页下页、显示的结果不是加了name条件的,而是全面全部的,等于tbar根本没保存住我后面输入的options
请问怎么解决

[b]问题补充:[/b]
dayang2001911 (初级程序员) 2008-11-08
我用了你的代码,还是不可以,其实我之前页写过,但是也不可以
我看了ext的源代码
doLoad=function(start){
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
if(this.fireEvent('beforechange', this, o) !== false){
this.store.load({params:o});
}
};
tbar执行的doLoad方法,我发现这里他永远只读取start limit2个参数
o是局部变量,我在beforechange事件里面修改了,也无法同步o
最后我只好修改prototype
Ext.PagingToolbar.prototype.doLoad=function(start){
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
Ext.apply(o,{name:Ext.getCmp('name').getValue()}); // 强制
if(this.fireEvent('beforechange', this, o) !== false){
this.store.load({params:o});
}
};
这样就无问题了
[b]问题补充:[/b]
我用的EXTJS 2.2的
不知道你是什么版本,我怀疑是版本问题 code错误
[b]问题补充:[/b]
store的load方法说明了会记住最后的参数 我打印看了,lastOptions的确是正确的
但是看了tbar的doLoad,根本不是去引用store.lastOptions,而是只用start limit
希望是我错误
[b]问题补充:[/b]
晚上再想想,我觉得beforeload应该是可以的
仔细看了代码,发现自己apply
错误了 Ext.apply(thiz.baseParams, {name:Ext.getCmp('name').getValue()}); 我写成了
Ext.apply(thiz.baseParams, Ext.getCmp('name').getValue());

  • 写回答

2条回答 默认 最新

  • dayang2001911 2008-11-08 00:39
    关注

    我对ext也不是很熟,看了你的问题后,我比对了一下我们项目中类似的应用,我觉着可能还是因为你在点击分页中还是没有把name传入到store中的url处理查询的方法中。

    我把我们代码实现过程大致写一下:
    var resultGrid = new xg.GridPanel({
    id:'resultlist-grid',
    store: store,
    ...
    bbar: new Ext.PagingToolbar({
    store: store,
    pageSize: Ext.page.pageSize,
    displayInfo: true
    })
    });

    然后定义了个查询的formpanel frm
    增加一个beforeload事件,在'beforeload'发生的时候把form中的参数传入到store的url中
    store.on('beforeload', function(thiz,options) {
    Ext.apply(thiz.baseParams, frm.getValues());
    });

    store.load(getParam());
    这样,点击下一页的时候没有出现丢失查询参数的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于单片机数字电压表电路组成及框图
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line