EXTJS 3,如何手动控制分页事件

EXTJS 3, how to manually control paging event?

本文关键字:控制 分页 事件 何手动 EXTJS      更新时间:2023-09-26

在 EXTJS 3 中,我正在定义数据存储和网格,它工作正常。 现在问题是分页,我想手动控制"下一步"按钮事件。

我尝试在分页中使用"之前更改"事件,但它不起作用,因为它是"BEFORE"。 如何使用参数值手动加载商店?

服务器端是 C#。

谢谢

商店是

  var store = new Ext.data.DirectStore({
            storeId: 'store',
            directFn: Report.Function1,
            autoLoad: false,
            paramsAsHash: false,
            paramOrder: 'param1|start',
            ....
            fields: [ ...   ],
            remoteSort: false,          
        });

分页是

var pager = new Ext.PagingToolbar({
            store: store,
            displayInfo: true,
            pageSize: this.pageSize,
            listeners: {
                beforechange: function (paging, params) {
                    currentPage = params.start;
                    report_search(params);
                }
            }
        });
 function report_search(page) {
    var store = Ext.StoreMgr.lookup('store');
    store.removeAll();
    store.load({
        params: {
            param1: Ext.getCmp("param1").getValue(),           
            start: page.start
        }
    });
}

似乎您想在加载完成之前将特殊参数应用于存储。
为此 - 您需要:

this.store.on('beforeload', this.applyParams.createDelegate(this));
...
applyParams: function(store, options) {
    options.params = options.params || {};
    var params = {
        param1: Ext.getCmp("param1").getValue()
    };
    Ext.apply(options.params, params);
}

我希望您不需要拒绝"下一步"按钮单击,因为可以从其他地方加载商店(自动,从其他地方手动)。