Extjs grid分页插件刷新问题

最近在使用extjs4做项目,当用到pagingtoolbar的刷新按钮时出现了一个问题,当时的界面使用的是条件查询,当时不点击查询按钮,直接点击pagingtoolbar刷新按钮时,所设置的参数pageSize : 10并没有传入,刷新仍然执行默认的参数25,刷新时操作其实执行的是store.reload();

不点击查询,直接单击分页组件刷新后效果如下:



经过分析组件源码,找到两种解决方案:
1.刷新按钮隐藏起来,用户看不到,就不会点击,效果如下:


代码如下:
    agentsGroupgridBeforerender : function() {
        var cip = this.getAgentsGroupSearchPanel();//获取到查询panel
        var grid = this.getAgentsGroupList();     //获取到查询列表
        var length = grid.dockedItems.keys.length;
        var refreshStr= "";
        for (var i = 0; i < length; i++) {
           if (grid.dockedItems.keys[i].indexOf("pagingtoolbar") !== -1) {
              refreshStr= grid.dockedItems.keys[i];
           }
        }
        grid.dockedItems.get(refreshStr).child('#refresh').hide(true);
    },


2.重写分页插件的刷新事件,这样可以从根本上解决问题:
    agentsGroupgridBeforerender : function() {
        var cip = this.getAgentsGroupSearchPanel();//获取到查询panel
        var grid = this.getAgentsGroupList();     //获取到查询列表
        var length = grid.dockedItems.keys.length;
        var refreshStr= "";
        for (var i = 0; i < length; i++) {
           if (grid.dockedItems.keys[i].indexOf("pagingtoolbar") !== -1) {
              refreshStr= grid.dockedItems.keys[i];
           }
        }
        grid.dockedItems.get(refreshStr).child('#refresh').setHandler(   
        function() {  
                grid.getStore().pageSize = cip.down('pagingtoolbar').pageSize;
                grid.getStore().currentPage = 1;
                grid.getStore().load();
         })
    },
希望此文可以给遇到同样困惑的朋友一点思路!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值