我有两个表单字段,一个选择列表和另一个网格面板。更改选择列表中的选择将触发其更改事件并触发网格面板侦听的名为datasourcechange
的自定义事件。这两个组件必须分开,因为它们用于不同的形式,而不是总是在一起。
问题在于,当我对网格面板进行排序时,它会获取未过滤的记录列表。我希望它从选择列表中重新应用过滤器,如果可用的话。
我已经尝试了remoteSort: false
,但我认为我可以做类似于选择列表如何触发面板正在侦听的事件,但是我需要一种方法来确定何时单击列标题,通过排序事件或标题本身的点击事件,任何人都可以为此推荐最佳实践方法吗?
我们使用的是Extjs 4.0.5,无法升级到4.1.x.任何帮助表示赞赏!
答案 0 :(得分:1)
这是一个常见问题。你要做的是实现这样的事情:
更改选择列表中的选项时,将所选值保存在网格商店中。
var store = getGridStore(); //你必须实现这个方法 store.selectedValue = theSelectedValue;
接下来,您必须订阅商店的加载事件,才能在执行请求之前应用过滤器。这是这样的:
getGridStore()。on('beforeload',function(store){ store.proxy.extraParams = {filteredByValue:store.selectedValue },这);
我不知道你的实现是怎样的,但是这描述了一般的想法。