【发布时间】:2011-11-25 05:42:38
【问题描述】:
我有一个窗口,顶部是搜索表单,底部是网格。
用户可以在搜索表单中输入值并单击按钮 - 获取记录。
单击此按钮时,我通过以下方式将表单字段中的值作为参数传递来加载网格的存储:
store.load({
params:{
key1:Ext.getCmp('field1').getValue();
}
});
我尝试在存储代理本身中提供参数,但不幸的是它总是占用初始值(呈现表单时的值),而不是用户在表单字段中输入的最新值。以下是我在创建商店时为参数赋值的方法:
extraParams:{
key1:Ext.getCmp('field1').getValue();
}
我想在两件事上寻求指导:
一个。在定义商店时,是否可以确保商店在查询服务器之前从表单字段中获取最新/当前值,以便在调用加载函数时不必提供这些值?
这变得更加必要,因为我在底部有一个分页工具栏,它带有一个刷新按钮(以及用于导航的下一个、最后一个、上一个、第一个图标)。
现在,每当用户点击刷新(或任何导航图标)时,商店都会在没有查询参数的情况下加载。
因此第二件事是:
b.如果“a”的答案是——在调用加载函数时手动将最新值传递给参数——那么我该如何编写“刷新”按钮和导航图标(即下一个、最后一个、上一个和第一个)的处理程序分页工具栏,以便我可以将最新的表单值传递给加载函数。
提前感谢您的帮助。
PS:我使用的是 ExtJS 4。
【问题讨论】:
-
我已经能够通过使用 store 的 'beforeload' 事件解决第一个问题。现在我在 beforeload 事件中将参数传递给代理 extraparams 并且它们采用最新值。但是如果有人可以指导他们,肯定想知道分页工具栏按钮的处理程序。再次感谢。
-
我在 v4,对不起,我也应该在问题正文中提到它,以及问题的标题。
-
您不需要对分页工具栏进行任何特殊处理。因为用户在分页工具栏上生成的事件反过来会导致商店的'beforeload'被触发,你已经介绍过。
-
NetEmp 你应该在一个简短的答案中写下你的解决方案并标记它以便关闭这个问题。
-
@amol: beforeload 确实会处理每个商店的加载,但一般来说,如果我们要为分页工具栏图标编写一个处理程序,那该怎么做呢?有什么线索吗?
标签: forms extjs load grid store