【问题标题】:PrimeNG - datatable: How to dynamically load columns and their fields in primeNg datatable?PrimeNG - 数据表:如何在 primeNg 数据表中动态加载列及其字段?
【发布时间】:2017-06-27 08:24:17
【问题描述】:

我有 json 列表,其中有一些输入字段和一些下拉字段。现在在数据表中显示它时,我想根据我的 json 列表中的字段类型显示输入字段或下拉字段。

我的代码是

<p-dataTable [value]="earningList" [responsive]="true" reorderableColumns="true" [editable]="true" >
<p-column [style]="{'width':'38px', 'padding-left':'10px'}" selectionMode="multiple"></p-column>
<p-column *ngFor="let column of earningColumns" [field]="column.field" [header]="column.header" [editable]="column.editable" [style]="{'width':'100px'}">

</p-column></p-dataTable>                                        

此代码正在运行并显示所有数据和列,但我想显示该字段是否在 json 列表中是下拉列表,然后在表中它应该显示下拉列表。

我该怎么做?如果条件在这里有效吗? 提前致谢。

编辑: 在 Alex cmets 之后,我编辑了我的代码如下

<p-column *ngFor="let column of earningColumns" [field]="column.field" [header]="column.header" [editable]="column.editable" [style]="{'width':'100px'}">
<template let-col let-earnings="rowData" pTemplate="editor">
    <p-dropdown *ngIf="column.isDropdown" [style]="{'width':'100px'}" [options]="taxFrequency"></p-dropdown>
</template>

但它显示没有列表的下拉列表。

【问题讨论】:

    标签: angular datatable primeng


    【解决方案1】:

    您的问题的答案是:Templates。 您可以根据数据的值使用这些设置单元格样式。在那里你可以使用*ngIf="column.isDropdown" 之类的东西来显示一个下拉菜单。

    【讨论】:

    • 我试过*ngIf,它显示下拉列表,但没有显示列表,只显示空白下拉列表。
    • 这似乎是taxFrequency 范围的问题。我不知道它在哪里,以及您是否以正确的方式访问它。
    • taxFrequency 是我的 SelectItem 类型的 json 列表,它是它们的组件。如果我在页面某处的硬编码下拉列表中使用它,这个 taxFrequency 列表将绑定到下拉列表。
    • 我无法重现您的问题,它适用于我的测试项目。也许您可以创建一个 Plunker 并分享您的问题?
    • alex,我也是 plunker 的新手,你能在 plunker 上分享你的测试项目,这样我就可以知道我是否做错了什么。
    猜你喜欢
    • 2018-11-29
    • 2018-08-13
    • 2017-09-12
    • 2018-03-16
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多