【问题标题】:PrimeNG data tables - export selected rowsPrimeNG 数据表 - 导出选定的行
【发布时间】:2017-10-05 00:40:46
【问题描述】:

我在下面有以下 PrimeNG 数据表,我正在尝试仅将我选择的行导出到 csv,其中选择列在此处定义:

<p-column field="marked" header="Marked" [style]="{'width':'38px'}" selectionMode="multiple"></p-column>

这是定义的整个数据表:

<p-column field="marked" header="Selected Column" [style]="{'width':'38px'}" selectionMode="multiple"></p-column>
    <p-header>
        <div class="ui-helper-clearfix">
            <button type="button" pButton icon="fa-file-o" iconPos="left" label="Export To CSV" (click)="dt.exportCSV()" style="float:right"></button>
        </div>
    </p-header>
    <p-column field="marked" header="Selected Column" [style]="{'width':'38px'}" selectionMode="multiple"></p-column>
    <p-column field="id" header="count7" [sortable]="true"></p-column>
    <p-column field="name" header="count6" [sortable]="false"></p-column>
    <p-column field="field1" header="count5" [sortable]="true"></p-column>
    <p-column field="field2" header="count4" [sortable]="true"></p-column>
    <p-column field="field3" header="count3" [sortable]="true"></p-column>
    <p-column field="field4" header="count2" [sortable]="true"></p-column>
    <p-column field="field5" header="Count1" [sortable]="true"></p-column>
</p-dataTable>  

当我现在使用 dt.exportCSV() 命令导出此表时,csv 中的“选定列”列仅包含值“未定义”。

所以,我希望能够只返回选定的行,或者将 csv 中的行标记为“true”或其他值。想法?

感谢大家的帮助!

编辑:添加我定义的 dt 函数:

   <p-dataTable #dt [value]="records" 
 [(selection)]="selectedRecords" exportFilename="discover" dataKey="id"
                [paginator]="true" [rows]="20" [headerCheckboxToggleAllPages]="true">

【问题讨论】:

    标签: angular mean-stack primeng


    【解决方案1】:

    我知道这个问题很老,但以防万一有人在寻找答案。以下是我们的做法。

    dt.exportCSV({ selectionOnly: true });
    

    我们正在使用PrimeNG version: 4.3.0

    【讨论】:

      【解决方案2】:

      您尚未在模板中定义 dt。在 primeNG 样本中,dt 被定义为模板变量:

      <p-dataTable #dt [value]="cars">
        <p-column field="vin" header="Vin"></p-column>
        <p-column field="year" header="Year"></p-column>
        <p-column field="brand" header="Brand"></p-column>
        <p-column field="color" header="Color"></p-column>
      </p-dataTable> 
      
      <button type="button" pButton icon="fa-file-o" iconPos="left" label="CSV" (click)="dt.exportCSV()"></button>
      

      您需要像他们在 p-dataTable 上使用 #dt 语法一样定义它。看起来它旨在导出整个数据表,而不是单独的列,但如果这是您所追求的。

      【讨论】:

      • 感谢布赖恩的回复!所以我在原始帖子中添加了我定义的 dt 函数。我正在寻找的是一种仅导出我从数据表中选择的行的方法。选择器列定义: 是的我只想导出我单击了上面定义的列提供的复选框的行。感谢您的帮助!
      • 就像我说的,我不相信 primeNG API 提供了这样的函数,exportCSV() 函数在数据表上并且不带参数......你需要写您自己的,数据表 api 公开您可以用来捕获所选数据的选择事件,然后在单击时运行一个函数,该函数获取所选数据并将其转换为 csv。创建 CSV 只是创建一个以逗号分隔的字符串,并且有一些关于如何导出 CSV 以供下载的 SO 答案。或者也许你可以在某个地方找到它的插件,但它是非常直接的东西。
      • 但是,我认为您看到了奇怪的行为,因为 exportCSV 函数可能适用于简单的表,并且您正在尝试将它与具有分组列的表一起使用,所以它可能不知道如何 csv 导出该数据,因为对于如何做到这一点可能有几种不同的有效解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2018-09-30
      • 2016-11-08
      • 1970-01-01
      相关资源
      最近更新 更多