ExtJs 4.x 学习小记:Ext.PagingToolbar翻页时查询参数丢失的处理

界面结构:左侧是分类树结构,右侧是表格,点击左侧类别,根据类别ID,去刷新右侧Grid的记录


当第一次点击左侧分类节点时,因为是通过代码去请求数据,传递参数catalogid,一切正常,处理catalogid以外,ext还会会自动传递start和limit,start为起始索引,limit是每页显示数量,类似如下请求

http://xxxxx/?catalogid=3&start=0&limit=5

treePanel是定义的 Ext.tree.Panel,下面是触发选择事件

    treePanel.getSelectionModel().on('select', function(selModel, record){  
        var filestore = Ext.getCmp('filegrid').getStore();
        filestore.baseParams.catalogid=record.data.id;
        filestore.currentPage = 1;
        filestore.load({
        	params:{
        		catalogid:record.data.id
        	}
        })
    });
通过上面代码去请求,没有问题,请求到第一页数据,当点击分页工具栏的下一页按钮时,发现传递给请求页面的参数catalogid没有了,类似如下

http://xxxxx/?start=0&limit=5,解决方法是在store的beforload时,写入catalogid参数

 var store = Ext.create('Ext.data.Store', {
 		baseParams:{catalogid:0},
 		pageSize:countPerPage,
		fields: ["id","filecode","filename"],
		proxy: {
            type: 'ajax',
            url: '././FileListServlet',
            reader:{
        	type:'json',
        	root:'items',
        	totalProperty:'total'
        	}
        }          
    });
 store.on('beforeload', function(s) {
 		var params = s.getProxy().extraParams;
       	Ext.apply(params,{catalogid:s.baseParams.catalogid});
 });

在定义了store对象后,在它的on方法中绑定监听,先得到扩展参数,然后再把store中已经有的之前的catalogid值赋给它,这样,点击分页时,就会传递catalogid参数了。



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bdmh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值