Ari*_*ule 3 primeng angular primeng-datatable
我正在使用 PrimeNG,并将全局过滤器添加到我的表中:
<input #gb type="text" pInputText size="50" placeholder="Filter">
Run Code Online (Sandbox Code Playgroud)
数据表:
<p-dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">
Run Code Online (Sandbox Code Playgroud)
我需要向已过滤的用户发送邮件。然而,我注意到用户计数(用户数量)不会在过滤器时更新。
记录根据表中的过滤器正确显示,但向这些用户发送邮件会将邮件发送给从数据库检索到的所有用户。
有没有办法使用 PrimeNG 过滤器选项在过滤器上更新实际用户的数量?
DataTable
组件有一个名为的变量filteredValue
,过滤后的值存储在该变量中。有两种方法可以获取过滤值:
第一种方式
您可以使用ViewChild
来获取对DataTable
对象的引用并获取您过滤的用户:
模板
<p-dataTable #dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">
Run Code Online (Sandbox Code Playgroud)
成分
import { Component, ViewChild } from '@angular/core';
import { DataTable } from 'primeng/primeng';
@ViewChild('dataTable')
dataTable: DataTable;
Run Code Online (Sandbox Code Playgroud)
现在您已经引用了DataTable
组件,很容易获得过滤的用户:
printFilteredUsers() {
console.log(this.dataTable.filteredValue);
}
Run Code Online (Sandbox Code Playgroud)
第二种方式
DataTable
组件具有调用的事件onFilter
,每次DataTable
过滤内容时都会触发该事件:
模板
<p-dataTable *ngIf="users != null && users.length > 0"
[value]="users" loadingIcon="fa-spinner" [globalFilter]="gb"
(onFilter)="printFilteredUsers($event)">
Run Code Online (Sandbox Code Playgroud)
成分
printFilteredUsers(event: any) {
console.log(event.filteredValue); // filtered users
console.log(event.filters); // applied filters
}
Run Code Online (Sandbox Code Playgroud)
PrimeNGDataTable
有很好的文档记录,我建议您查看一下。你可以在这里做。
归档时间: |
|
查看次数: |
3089 次 |
最近记录: |