Javascript filters为单个列提供多个过滤器,使用;或;通过电网外的复选框/按钮进行逻辑
我已经使用FiltersFeature.js插件成功配置了网格面板。我可以在我的列标题菜单项中看到过滤器选项。我使用字符串、列表和日期范围类型,只在本地过滤,而不是远程过滤 该行为按预期工作。例如,我有一列“Status”,其中配置了一个过滤器(通过配置,而不是列): 正确呈现选项属性每个项的复选框列表。当我从列表中选择“新建”和“正在工作”时,网格将被过滤以显示与“新建”或“正在工作”状态匹配的记录 现在,当我以编程方式添加过滤器时,使用如下方式:Javascript filters为单个列提供多个过滤器,使用;或;通过电网外的复选框/按钮进行逻辑,javascript,extjs,Javascript,Extjs,我已经使用FiltersFeature.js插件成功配置了网格面板。我可以在我的列标题菜单项中看到过滤器选项。我使用字符串、列表和日期范围类型,只在本地过滤,而不是远程过滤 该行为按预期工作。例如,我有一列“Status”,其中配置了一个过滤器(通过配置,而不是列): 正确呈现选项属性每个项的复选框列表。当我从列表中选择“新建”和“正在工作”时,网格将被过滤以显示与“新建”或“正在工作”状态匹配的记录 现在,当我以编程方式添加过滤器时,使用如下方式: tasksGrid.filters.addF
tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: 'New'}]);
tasksGrid.store.load();
tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: ['New','Waiting']}]);
它可以将所有网格记录过滤到匹配状态“New”
问题是我无法理解如何向addFilters方法添加多个参数,以便获得与“或”搜索相同的内置行为,而不是“和”搜索
使用标题菜单选项并对单个列应用多个筛选器时,我可以通过getFilterData()方法看到filterData是:
[Object
data: Object
type: "list"
value: Array[2]
0: "New"
1: "Waiting"
length: 2
__proto__: Array[0]
__proto__: Object
field: "status"
__proto__: Object
其中,该值设置为2个值的数组。但是,当我尝试做以下事情时:
tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: 'New'}]);
tasksGrid.store.load();
tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: ['New','Waiting']}]);
对于filterData,我得到以下结果:
[Object
data: Object
type: "string"
value: "New,Waiting"
__proto__: Object
field: "status"
__proto__: Object
我想它是连接值的,因为我使用了一种字符串类型,所以我尝试了一种“列表”类型,这是在过滤器配置中定义的,我得到了以下错误:
未捕获的TypeError:无法调用未定义的。。。ListMenu.js:83
任何帮助都将不胜感激
谢谢
赛斯我对你想做什么有点困惑。如果您只想设置过滤器的值,我相信您可以使用:
tasksGrid.filters.getFilter('status').setValue(["New", "Waiting"]);
如果您试图在创建网格后添加实际的过滤器,我查看了ux.ListFilter和ux.ListMenu的文档,它看起来不像您可以使用预先选择的某些过滤器来创建它。为了创建一个列表过滤器,我还需要进一步挖掘代码