[更新]问题是使用PrimeNG列筛选器进行搜索时,它与显示的内容不匹配,但与原始值匹配
作为一个例子,我使用经度和纬度值,其中它们的值的原始格式如下
- 00.123456
- 01.123456
- 012.34567
显示值将主要截断前导零,并将数字的总长度修剪为5
- 0.1234
- 1.1234
- 12.345
问题:执行12的列筛选器"Starts With"以匹配12.3456的可见值,但找不到任何内容,因为传入的记录数据为012.34567。与"Ends with"问题相同。
问题:要找到匹配项,您需要知道012.34567的原始格式,并执行012的列筛选器"Starts With"搜索,以匹配12.3456的可见值。这毫无意义。
我在几年前就发现了GitHub Issue关于这方面的帖子,但在过去几年里什么都没有。
***有办法解决这个问题吗?***
或
***您是否有此组件可以轻松完成的更好的解决方案?***
我能找到的最近一篇关于处理显示值的不同过滤的帖子是为PrimeNG应用自定义中间过滤器:Datatable
***更新时间:2022年8月6日***
StackBlitz示例,该示例使用带有汽车数据的数据表。
汽车数据包含一个VIN,我在其中修改了前缀为"xx"的值。
显示器会过滤掉"xx"。
您可以在列中搜索所查看的内容,并将其与原始数据相匹配。
如何修改过滤的内置选项以使用我的过滤器,而不是特定的内置选项。
例如,我想用我自己的功能替换内置的"Starts With"one_answers"Ends With)过滤器选项,但保留所有其他内置选项。
我找到了解决方案。查看我的StackBlitz解决方案
您需要调整文件:app.component.ts部分
this.filterService.register(customFilterName, (value, filter): boolean => {...
要实现您想要执行的自定义筛选搜索,例如计算从显示中剪切的前缀值,或者如果您想搜索已转换为可读值(如日期对象)的对象。