2017-10-18 1 views
0

Ich bin neu in eckigen 4, ich versuche, eine p-dataTable zu machen und wollen Zeile Farbe nach meinem Objekt Menge Eigenschaft ändern. Wenn die Menge kleiner als 10 ist, wird die Zeilenfarbe rot angezeigt.Zeilenfarbe ändern nach Eigenschaft Bedingung eckig 4 ​​

Unten ist mein Code:

<p-dataTable [value]="myObjectList" 
        selectionMode="single" [rows]="10" [paginator]="true" 
        [pageLinks]="3" [rowsPerPageOptions]="[5,10,20]" [totalRecords]="totalRecords" [loading]="loading" exportFilename="InventoryDetailsReport" #dt></p-dataTable> 

ich viel für zwei Tage Google und ist in allen Fällen aber alle Beispiel verwendet wurde "rowStyleClass" finden in ngPrime Version 1.0.1

Ich arbeite auf Version 4.1.3, wo ich keine Zeilenfarbe machen kann. Wie kann ich dieses Problem lösen?

Vielen Dank im Voraus.

Antwort

1

Sie können rowStyleClass - Function verwenden, die den Zeilendaten- und Zeilenindex als Parameter erhält und eine Stilklasse für die Zeile zurückgibt. Dies ist eine Alternative zum rowStyleMap-Ansatz.

<p-dataTable ... [rowStyleClass]="setClass"></p-dataTable> 

setClass(rowData) { 
    return rowData.quantity < 10 ? 'classOne' : 'classTwo'; 
} 
+0

Dank @jsFan bro für Ihre Antwort, aber ich benutze diesen Prozess und ich habe ein Problem => Ich habe drei rowData aber "setClass" -Funktion 6 mal anrufen. Und auch die Farbe ändert sich nicht. :( –

+0

Es wird 6 mal aufgerufen, weil Änderungserkennung zweimal ausgeführt wird. – JsFan

+0

Sie können überprüfen, dass die Klasse dem Element hinzugefügt wird? – JsFan