PrimeNG表获取已过滤的行

时间:2018-08-06 14:51:40

标签: angular angular5 primeng primeng-datatable

我在Angular 5中使用PrimeNG 6.0.2,并且 Table 插件出现问题。我改用Table了,因为不推荐使用DataTable。现在,我无法像以前那样访问过滤后的值。

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

@ViewChild('myTable') dataTable: Table;

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

dataTable._value[index] = ...;

但是现在,该属性仅保留排序后的数组,而我必须使用 filteredValue 属性:

dataTable.filteredValue[index] = ...;

我的问题是 filteredValue 在进行任何过滤之前为undefined,在对表进行过滤时具有值,而在删除所有过滤器文本之后为null。这产生了一些非常丑陋的代码。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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