我想在工具栏中添加一个按钮,自动将过滤器设置为活动状态,然后过滤数据。我已尝试对setActive()
使用Ext 4.1.3
函数,但该功能未被识别。
代码
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']
}
}
...
答案 0 :(得分:1)
无法在您查找的位置找到setActive方法。 您尝试在过滤器列表上执行setActive,但只有在找到特定过滤器对象后才能执行实际功能。
在你的示例代码中(当你跳过那里有问题的列时,小提琴是没有用的)你将首先得到过滤器:
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';
});