ExtJS 4 - 如何加载带有来自表单的最新值的参数的网格存储?

net*_*emp 3 forms grid load extjs store

我有一个窗口,顶部有一个搜索表单,底部有一个网格。

用户可以在搜索表单中输入值,然后单击按钮 - 获取记录。

单击此按钮时,我通过以下方式将表单字段中的值作为参数传递来加载网格的存储:

store.load({
    params:{
        key1:Ext.getCmp('field1').getValue();
    }
});
Run Code Online (Sandbox Code Playgroud)

我尝试在商店代理本身中提供参数,但不幸的是它总是采用初始值(呈现表单时的值)而不是用户在表单字段中输入的最新值。以下是我在创建商店时用于为 params 分配值的方法:

extraParams:{
    key1:Ext.getCmp('field1').getValue();
}
Run Code Online (Sandbox Code Playgroud)

我想在两件事上寻求指导:

一种。在定义商店时,是否可以确保商店在查询服务器之前从表单字段中获取最新/当前值,以便在调用加载函数时不必提供这些值?

这变得更加必要,因为我在底部有一个分页工具栏,它带有一个刷新按钮(以及用于导航的下一个、最后一个、上一个、第一个图标)。

现在,每当用户点击刷新(或任何导航图标)时,商店都会在没有查询参数的情况下加载。

因此,第二件事是:

湾 如果“a”的答案是 - 在调用加载函数时手动将最新值传递给参数 - 那么我如何为“刷新”按钮和导航图标(即下一个、最后一个、上一个和第一个)编写处理程序分页工具栏,以便我可以将最新的表单值传递给加载功能。

提前感谢您的任何帮助。

PS:我正在使用 ExtJS 4。

小智 5

yourStore.on('beforeload',function(store, operation,eOpts){
        operation.params={
                  status:cmbStatus.getValue(),
                  value:txtBuscarPor.getValue(),
                  empresa:'saasd',
                  app:'dsads'
            };

},this);
Run Code Online (Sandbox Code Playgroud)