【问题标题】:PrimeNg TurboTable - Conditional Row-groupingPrimeNg TurboTable - 条件行分组
【发布时间】:2019-09-06 11:38:19
【问题描述】:

我正在使用 PrimeNG 的 TurboTable (p-table)

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

我想按照here 的描述实现行分组,其中表响应groupField 参数中的更改。

我尝试过的:

  1. pTemplate="body" 制作两个ng-templates,类似这样。
<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. 制作两个不同的&lt;p-table&gt;s,一个带行分组,另一个不带,ngIf 控制在给定时间显示哪一个。这有效,但对我来说没有意义,因为我应该能够在一张桌子上做到这一点,就像我在旧的 &lt;p-datatable&gt; 中一样。

我想要的是让一张桌子处理所有这些。

【问题讨论】:

    标签: angular primeng primeng-datatable primeng-turbotable


    【解决方案1】:

    您可以在&lt;p-template&gt; 中添加&lt;ng-container&gt;,使其看起来像这样:

    <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,以检查其工作原理。

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2018-10-28
      • 1970-01-01
      • 2018-06-28
      • 2018-09-24
      相关资源
      最近更新 更多