gpt4 book ai didi

javascript - 设置事件过滤器的 Extjs 4.1.3 按钮

转载 作者:行者123 更新时间:2023-12-03 03:46:12 24 4
gpt4 key购买 nike

我想在工具栏上添加一个按钮,自动将过滤器设置为事件状态,然后过滤数据。我已尝试使用 Ext 4.1.3setActive() 函数,但该函数未被识别。

fiddle

代码

var openButton = Ext.create('Ext.Button', {
text: 'Open Topics',
handler: function () {
grid[uniqueId].filters.setActive('Open/Current');
}
});

...
var columns = [{
text: 'Status',
width: 100,
dataIndex: 'TopicStateValue',
filter: {
type: 'list',
options: ['Open/Current', 'Archived/Closed', 'Hold']
}
}
...

最佳答案

在您查找的位置找不到 setActive 方法。您尝试对过滤器列表执行 setActive,但只有找到特定过滤器对象后才能执行实际函数。

在您的示例代码中( fiddle 没有用,因为您跳过了那里有问题的列),您将首先获得过滤器,如下所示:

var filter = grid[uniqueId].filters.getFilter('TopicStateValue');
filter.setActive(true);

但是激活过滤器并不会执行您期望的操作。它只会启用过滤器栏中的过滤器 UI 元素。要在启用后自动执行所述过滤器,您需要设置该过滤器的值:

filter.setValue('Open/Current');

如果您不使用过滤器栏或根本不想向用户显示此特定过滤器下拉列表,则最好直接过滤商店:

var store = grid[uniqueId].getStore();
store.filterBy(function(item) {
return item.TopicStateValue == 'Open/Current';
});

关于javascript - 设置事件过滤器的 Extjs 4.1.3 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com