【问题标题】:PrimeNG Table get filtered rowPrimeNG 表获取过滤行
【发布时间】:2018-08-06 14:51:40
【问题描述】:

我将 PrimeNG 6.0.2 与 Angular 5 一起使用,但我遇到了 Table 插件问题。我切换到 Table 因为 DataTable 已被弃用。现在,我无法像以前那样访问过滤后的值了。

假设我通过 ViewChild 在组件中定义我的表格:

@ViewChild('myTable') dataTable: Table;

使用 DataTable,我可以访问保存已排序和过滤数据的 _value 属性:

dataTable._value[index] = ...;

但是现在,这个属性只保存排序后的数组,而我必须使用 filteredValue 属性:

dataTable.filteredValue[index] = ...;

我的问题是 filteredValue 在任何过滤之前为undefined,在过滤表时具有值,在我删除所有过滤器文本后为null。这会产生一些非常难看的代码。

是否可以访问当前数据,无论是排序、过滤还是与起始数组相同?还是我必须采用这种方法?

【问题讨论】:

    标签: angular angular5 primeng primeng-datatable


    【解决方案1】:

    访问过滤值的另一种方法是声明onFilter 事件,然后检索/存储过滤值。

    // on your component class declare
    onFilter(event, dt) { 
      this.filteredValues = event.filteredValue; 
    }
    <p-table #dt .... (onFilter)="onFilter($event, dt)">

    【讨论】:

    • 用 12.1.0 版测试,它工作正常
    【解决方案2】:

    我知道这是一个很晚的答案,但对于其他遇到此问题的人,您可以使用表本身的 table.hasFilter() 函数并根据要访问的属性来决定。也会产生相当多的开销,但对我来说,这比 !!table.filteredValue 要干净得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多