列过滤器复选框未更新
Posted
技术标签:
【中文标题】列过滤器复选框未更新【英文标题】:Column filter checkbox not updated 【发布时间】:2018-10-10 22:05:49 【问题描述】:考虑 ag-grid 中的一列,它只能有两个值之一,“是”和“否”作为字符串。
ag-grid 有一个内置的列过滤器,它通过复选框显示该列的所有不同值。
Yes and No options
此过滤对用户交互非常有效,但我需要在第一次渲染之前过滤掉具有“否”值的行,无需用户交互。
我可以通过使用来完成所需的过滤
gridOptions.isExternalFilterPresent
gridOptions.doesExternalFilterPass
但是,当用户单击过滤器按钮时,他们只会看到列中当前值的选项,而不是所有可能的值。
Yes only filter options
问题是用户可能甚至不知道“否”是一个可能的选项,并且不知道网格当前过滤了什么。
我相信为了帮助解决这种情况,您提供所有可能的值,可以为过滤器指定为以下filterParams:
headerName: 'ETF',
field: 'isEtf',
filterParams:
values: ['Yes', 'No'],
suppressRemoveEntries: true
当我提供values
时,网格将显示两个复选框,但它并不准确,因为所有“否”值都已被过滤掉,并且应该在“否”选项旁边有一个未选中的复选框。
将suppressRemoveEntries
设置为 true 似乎没有任何效果,尽管它的描述似乎表明这可以解决我的问题。
有没有办法以编程方式控制复选框的状态,或者在应用我的外部过滤器后让网格根据filterParams.values
中提供的可能值重置/识别当前过滤器选项?
【问题讨论】:
【参考方案1】:我从未找到使用外部过滤器的解决方案,但利用网格创建的设置过滤器达到了预期的结果。
const filter: IFilterComp = gridOptions.api.getFilterInstance('isEtf');
// bracket notation required because current typing does not include
// the unselectValue function as of ag-grid v17.1.1
filter['unselectValue']('No');
// you must let grid know of the change so it will be applied to data in grid
gridOptions.api.onFilterChanged();
【讨论】:
以上是关于列过滤器复选框未更新的主要内容,如果未能解决你的问题,请参考以下文章
ASP:带有分页的 Gridview 复选框列未显示选中了哪个复选框