PrimeNg TurboTable-条件行分组

时间:2019-04-16 11:19:28

标签: angular primeng primeng-datatable primeng-turbotable

我正在使用PrimeNG的TurboTable(p表)

我有一个groupField参数,它可以是null或具有对应于列标题的值。该参数的值可以随时动态更改。预期的行为是,当groupField==null呈现普通表时,但当'groupField ==`时,则行将根据此值分组,如here所示。

我要实现here中所述的行分组,其中表响应groupField参数中的更改。

我尝试过的事情:

  1. 使用pTemplate="body"制作两个ng模板,类似这样。
<ng-template pTemplate="body" *ngIf="groupField==null">
    ...
<ng-template>
<ng-template pTemplate="body" *ngIf="groupField!=null">
    ...
<ng-template>
<ng-template pTemplate="rowexpansion" *ngIf="groupField!=null">
    ...
<ng-template>

不起作用,因为我怀疑p-table在首次呈现并随后仅更新数据时会形成其配置。

  1. 制作两个不同的<p-table>,一个带有行分组,另一个不带有行ngIf,以控制在给定时间显示哪个。 有效,但对我来说没有意义,因为我应该能够在一张桌子上做到这一点,就像我在较旧的<p-datatable>中一样。

我想让一个表处理所有这些事情。

1 个答案:

答案 0 :(得分:0)

您可以在<ng-container>内添加<p-template>,这样看起来像这样:

<ng-template pTemplate="body">
   <ng-container *ngIf="groupField==null">
    ...
   </ng-container>
   <ng-container *ngIf="groupField!=null">
    ...
   </ng-container>
<ng-template>
<ng-template pTemplate="rowexpansion" *ngIf="groupField!=null">
    ...
<ng-template>

您可以在这里检查它的工作状态:

https://stackblitz.com/edit/angular-primeng-stack-55706959?file=src/app/ils-tree/ils-tree.component.ts

有一个groupField,您可以在tablegrouping.component.ts中将其从true更改为false,以检查其工作原理。

相关问题