我有一个带有列表过滤器的网格。当我筛选一列时,其他列表筛选器不会与结果一起筛选。我做了一个测试小提琴来证明这一点:
当我过滤到项目负责人角色时,我只有一个活动状态的结果(戴安娜)。但当我查看状态筛选器时,我看到两个(活动和挂起):
有没有办法只显示与结果关联的筛选器?注意:我使用的是ExtJS 6.5.2。
bt1cpqcv1#
这可以通过覆盖列表筛选器的方法getOptionsFromStore来完成,而不使用具体的(从网格存储自动生成的)存储。也可以在此基础上创建新组件小提琴
getOptionsFromStore
Ext.define('Ext.grid.filters.filter.DynamicList', { extend: 'Ext.grid.filters.filter.List', alias: 'grid.filter.d-list', type: 'd-list', getOptionsFromStore: function (store) { var me = this, data = store.getData(), map = {}, ret = [], dataIndex = me.dataIndex, labelIndex = me.labelIndex, recData, idValue, labelValue; if (store.isFiltered() && !store.remoteFilter ) { data = data.getSource(); } //each filtered records, not all Ext.Array.each(store.getRange(),function (record) { recData = record.data; idValue = recData[dataIndex]; labelValue = recData[labelIndex]; if (labelValue === undefined) { labelValue = idValue; } if (!map[idValue]) { map[idValue] = 1; ret.push([idValue, labelValue]); } }, null, { filtered: true, collapsed: true }); return ret; } });
1条答案
按热度按时间bt1cpqcv1#
这可以通过覆盖列表筛选器的方法
getOptionsFromStore
来完成,而不使用具体的(从网格存储自动生成的)存储。也可以在此基础上创建新组件小提琴