2017-10-05 3 views
0

J'ai la table de données PrimeNG suivantes ci-dessous et je suis en train d'exporter au format CSV uniquement les lignes que j'ai sélectionné où une colonne de sélection est définie ici:tableaux de données PrimeNG - export lignes sélectionnées

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

Voici la totalité de la table de données définies:

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

Quand j'exporter cette table maintenant la commande dt.exportCSV(), la colonne dans le csv « Sélection de la colonne » ne contient que la valeur « non défini ». Donc, j'aimerais pouvoir retourner seulement les lignes sélectionnées, ou avoir les lignes dans le csv marquées "vrai" ou une autre valeur. Pensées?

Merci pour toute l'aide!

EDIT: Ajout ma fonction dt définie:

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

Répondre

0

Vous n'avez pas défini dt dans votre modèle. dans les échantillons primeNG, dt est défini comme une variable de modèle:

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

Vous devez définir ainsi comme ils le font avec la syntaxe de votre p # DT-dataTable. On dirait qu'il est destiné à exporter la totalité de la table de données et non sur des colonnes individuelles si c'est ce que vous recherchez.

+0

Merci bryan pour la réponse! J'ai donc ajouté ma fonction dt définie dans le message original. Ce que je cherche est un moyen d'exporter uniquement les lignes que je sélectionne dans le datatable. La colonne du sélecteur est définie: Ouais alors je Je veux exporter uniquement les lignes sur lesquelles j'ai cliqué la case fournie par la colonne ci-dessus. Merci pour l'aide! –

+0

Comme je l'ai dit, je ne crois pas que l'API primeNG fournisse une telle fonction, la fonction exportCSV() est sur la table de données et ne prend pas de paramètres ... Vous auriez besoin d'écrire la vôtre expose les événements de sélection que vous pouvez utiliser pour capturer les données sélectionnées, puis exécute une fonction sur un clic qui prend les données sélectionnées et les transforme en csv. La création d'un fichier CSV consiste simplement à créer une chaîne délimitée par des virgules et il existe quelques réponses SO sur la façon d'exporter un fichier CSV à télécharger. Ou peut-être que vous pouvez trouver un plugin quelque part, mais c'est assez simple. – bryan60

+0

Cependant, je pense que vous voyez le comportement étrange que vous voyez car la fonction exportCSV est probablement destinée à des tables simples, et vous essayez de l'utiliser avec une table qui a des colonnes groupées, donc elle ne sait probablement pas comment csv exporter ces données, car il pourrait y avoir quelques différentes interprétations valables de la façon de le faire. – bryan60