2017-10-05 85 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