0

我有两个表单域、一个选择列表和另一个网格面板。更改选择列表中的选择将触发其更改事件并触datasourcechange发网格面板侦听的自定义事件。这两个组件必须分开,因为它们以不同的形式使用,并不总是一起使用。

问题是当我对网格面板进行排序时,它会获取未过滤的记录列表。如果可用,我希望它重新应用选择列表中的过滤器。

我试过remoteSort: false了,但我想我可以做一些类似于选择列表如何触发面板正在侦听的事件的事情,但我需要一种方法来确定何时单击了列标题,无论是通过排序事件还是单击标题本身的事件,有人可以为此推荐最佳实践方法吗?

我们使用的是 Extjs 4.0.5,无法升级到 4.1.x。任何帮助表示赞赏!

4

1 回答 1

1

这是一个常见的问题。你需要做的是实现这样的事情:

  1. 在选择列表中更改选择时,将所选值保存在网格存储中。

    var store = getGridStore(); // 你必须实现这个方法 store.selectedValue = theSelectedValue;

  2. 接下来,您必须订阅 store 的 load 事件才能在执行请求之前应用过滤器。这是这样的:

    getGridStore().on('beforeload', function (store) { store.proxy.extraParams = { filteredByValue: store.selectedValue }, this);

我不知道您的实现如何,但这描述了总体思路。

于 2012-11-05T19:55:32.117 回答