2017-10-05 94 views
0

,我有以下PrimeNG数据如下表和我试图导出为CSV只是我已经选中选择列在这里定义的行:PrimeNG数据表 - 选择导出行

<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"> 

回答

0

您没有在模板中定义的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> 

您需要定义它,以及像他们这样做与你对DataTable中的#dt语法。看起来它打算导出整个数据表,而不是在单个列上,尽管如果这是你所追求的。

+0

感谢bryan的回复!所以我在原始文章中添加了我定义的dt函数。我正在寻找的是一种导出我从数据表中选择的行的方法。选择器列的定义如下: 是的,只想导出我点击了由上面定义的列提供的复选框的行。谢谢您的帮助! –

+0

就像我说的,我不相信primeNG API提供了这样的功能,exportCSV()函数在数据表上,并且不需要参数...您需要编写自己的数据表api公开可用于捕获选定数据的选择事件,然后在单击时运行一个函数,将所选数据转换为csv。创建一个CSV只是创建一个逗号分隔的字符串,并且有几个关于如何导出CSV下载的答案。或者,也许你可以在某个地方找到一个插件,但它是非常简单的东西。 – bryan60

+0

不过,我认为你会看到你看到的奇怪行为,因为exportCSV函数可能适用于简单表格,并且你正尝试将它用于具有分组列的表格,所以它可能不知道如何csv导出数据,因为可能会有几种不同的有效解释如何做到这一点。 – bryan60