如何在带有延迟加载的primeng Turbotable中使用过滤器?

2024-01-31

我正在使用带有延迟加载选项的 PrimeNG TurboTable 来显示数据库中的数据。这很完美。现在,我需要向发送到服务器的请求添加一些过滤器。怎么做 ?

这是有效的代码:

<p-table [columns]="cols" [value]="persons" [paginator]="true" [rows]="10" [lazy]="true" (onLazyLoad)="loadPersonsLazy($event)" 
            [totalRecords]="totalRecords" [loading]="loading">
  <ng-template pTemplate="header" let-columns>
    <tr>
      <th *ngFor="let col of columns">
        {{col.header}}
      </th>
    </tr>   
  </ng-template>
  <ng-template pTemplate="body" let-rowData let-columns="columns">
    <tr>
      <td *ngFor="let col of columns">
        {{rowData[col.field]}}
      </td>
    </tr>
  </ng-template>
</p-table>

组件.ts代码:

import { Component, OnInit } from '@angular/core';

import{IPerson} from '../iperson'
import{PrimengServiceService} from '../primeng-service.service'
import {LazyLoadEvent} from 'primeng/api'; 
import {FilterMetadata} from 'primeng/api';

@Component({
  selector: 'app-person',
  templateUrl: './person.component.html',
  styleUrls: ['./person.component.css']
})
export class PersonComponent implements OnInit {

  constructor(private _primengService: PrimengServiceService) { }

  persons:IPerson[] =[]; 
  cols: any[];
  totalRecords:number=100;
  loading: boolean;

  ngOnInit() {

    this.cols = [
      { field: 'FirstName', header: 'First Name' },
      { field: 'LastName', header: 'Last Name' },
      { field: 'EMail', header: 'EMail' },
      { field: 'Phone', header: 'Phone' }
  ];

  }


  loadPersonsLazy(event: LazyLoadEvent) {
    this.loading = true;
    this._primengService.getPersonList(event.first,event.rows).subscribe(res=>this.persons=res,
      error => {
        this.loading = false;
        console.log(`Error - getPersonList method: ${error}`);
      },
      () => {
        this.loading = false;
        console.log(`Info - getPersonList method succeeded. Results: ${JSON.stringify(this.persons)}`);
      })
  }

}

Result : enter image description here


这是一个例子:

template

  <ng-template pTemplate="header" let-columns>
    <tr>
      <th *ngFor="let col of columns" [style.width]="columnWidthTable(col.field)" [pSortableColumn]="col.field" [pSortableColumnDisabled]="!col.sortable">
        <p-sortIcon *ngIf="col.sortable" [field]="col.field"></p-sortIcon>
        {{col.field | translate}}
        <input (click)="$event.stopPropagation()" [style.width]="'90%'" *ngIf="col.filterable" pInputText type="text" (keyup.enter)="columnFilter($event, col.field)">
      </th>
    </tr>
  </ng-template>

component.ts

  @ViewChild('dt') dataTable: Table;
  columnFilter(event: any, field) {
    this.dataTable.filter(event.target.value, field, 'contains');
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在带有延迟加载的primeng Turbotable中使用过滤器? 的相关文章

随机推荐

  • 尝试从 Chrome 实现拖放 Gmail 附件

    我一直在尝试将 Gmail 附件从 Chrome 拖放到我的应用程序中 可以将文件从电子邮件拖到桌面并在那里创建附件 所以我知道这一定是可能的 我已经能够让它读取文件名 但是当我从数据对象读取 FileContents 时 我得到一个带有该
  • 将 HTML 转换为 CSV

    我想将从下面的脚本获得的 HTML 表转换为 CSV 文件 但出现类型错误 如下所示 类型错误 序列项 0 预期字符串 找到标签 from bs4 import BeautifulSoup import urllib2 url http w
  • 使用 SQL 按日期过滤

    我想知道您的想法 我必须获得会话期间与系统的所有连接 为了使这个过程自动化 我决定使用 current date 但这不起作用 因为 current date 不是字符串 而是函数 所以我的问题是是否有人可以帮助我查询以获取当天所有连接的数
  • 将基本身份验证和表单登录结合到同一个 REST Api

    有没有办法为同一个 REST 服务设置基本身份验证和表单登录 我想让登录的用户在登录后通过网络浏览器以及从命令行运行来触发此服务curl u username password hostname com api process现在我看到了这
  • 网站加载时显示旋转轮或进度条

    我正在使用名为 jquery treeview 的 jQuery 插件构建一个树视图 构建此树视图需要花费大量时间 大约 5 7 秒 并且我想在页面加载时显示旋转轮或进度条 有谁知道这是怎么做到的吗 我只找到了加载视频或图像的解决方案 其中
  • 来自 Google 的带有 Charts API 示例的 GWT 无法正常工作

    我已经下载了在 GWT 中使用图表所需的 jar 附带的存档 存档中还有示例应用程序 http gwt google com samples hellovisualization 1 1 0 HelloVisualization html
  • 向量和平均数的随机化

    我有一个计算累积平均值和标准差的脚本 library tidyverse tibble aa c 2 3 4 5 6 7 8 gt mutate running mean sapply seq n function i mean aa se
  • .NET 4.5 中等待完成后 HttpContext.Current 为 null

    我在 NET 4 5 Web 应用程序中定义了以下简单的 WCF 服务 ServiceContract public interface IService1 OperationContract WebGet UriTemplate json
  • 将猪结果存储到本地文件

    我运行pig脚本做了一些夸张的操作 并且输出大小非常小 现在我跑 hadoop fs getmerge 分别地 有什么办法让pig脚本将结果直接转储到本地文件中吗 如果您不担心将所有内容合并到一个文件中 那么您可以在 grunt 中使用 c
  • 如何使用OpenCV提高Grabcut算法的准确性?

    我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除 算法运行良好 但给出的结果不准确 例如 我的输入图像是 输出图像如下所示 那么我们如何提高Grabcut算法的准确性呢 P S 由于声誉低而没有上传示例图像 对此
  • 将实例添加到 MEF 容器

    如何将已创建的实例添加到 MEF 容器 目录中以在解析导入时使用 我想要 Unity 提供的功能RegisterInstance其容器上的方法 您可以使用撰写导出值 http msdn microsoft com en us library
  • 内部有 Any() 的嵌套 for 循环的 Big O 是什么?

    这个问题基本上是我的后续问题在这里回答 https stackoverflow com a 38332524 542251 我真的很想说这个算法的大O是什么 但我不确定我的说法是否完全正确 所以给定两个数组 B Hello World He
  • MSBuild 条件 IsDebug

    如何确定项目是否在 MSBuild targets 文件中以调试 或发布 模式构建 并使用此信息作为另一个属性的条件 就像是
  • 在 CSV 行末尾查找未终止的引用字段

    无论如何 我们是否可以找到 CSV 行末尾未终止的引用字段 的行号 我正在尝试在 java 中读取 CSV 文件 但出现错误很可能是因为 有一个报价已打开但未关闭 我正在使用 deeplearning4j datavec 的 CSVReco
  • AES 加密在 iOS 和 Android 中产生不同的结果

    尝试在 Android 和 iOS 中使用带有 CBC 和 PKCS7 填充的 AES128 算法来加密示例数据 但结果不同 安卓代码 private static final byte KEY 0x01 0x02 0x03 0x04 0x
  • Html Agility Pack - 按 ID 或类删除标签

    这是我的简化 HTML div div div div div div class divToRemove div div class divToRemove div div 我想删除 ID 或类名为 divToRemove 的 div 然
  • R 错误:names() 应用于非向量

    我有一段代码 仅在第一次运行时才会产生错误 奇怪的是 如果我第二次运行它 我不会得到任何错误 疯狂的定义 此外 错误并不总是出现在同一位置 我的意思是 如果我添加几行注释 错误消息将在注释之后打印 而不是在特定指令之后打印 我无法提供可重现
  • RADIUS 和 EAP 如何以及在何处结合?

    我一直在阅读一些有关身份验证方法的内容 我读过有关 RADIUS 和 EAP 的内容 我只是不明白它们之间的联系 RADIUS是一种身份验证协议 它使用共享密钥和其他方法进行安全身份验证 而EAP更多的是一种通用协议 我知道 EAP 本身不
  • 使用 Roslyn 和 .NET Core 生成 C# 代码

    有没有办法使用 Roslyn 和 NET Core 生成 C 代码 我尝试使用 Microsoft CodeAnalysis CSharp 包中的 SyntaxFactory 我目前遇到的问题是从中获取正确格式的代码作为文本 到目前为止我见
  • 如何在带有延迟加载的primeng Turbotable中使用过滤器?

    我正在使用带有延迟加载选项的 PrimeNG TurboTable 来显示数据库中的数据 这很完美 现在 我需要向发送到服务器的请求添加一些过滤器 怎么做 这是有效的代码