问题:PrimeNG数据表列筛选器与字段中的管道更改数据不匹配



[更新]问题是使用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 => {...

要实现您想要执行的自定义筛选搜索,例如计算从显示中剪切的前缀值,或者如果您想搜索已转换为可读值(如日期对象)的对象。

最新更新