Search code examples
htmlcssangularprimeng-datatable

How update row background colour when row updated in ng-prime datatable for dynamic columns?


I want to change row colour when row updated.how set row background colour when record is updated successfully . .html

<p-dataTable emptyMessage="{{tbldatamsg}}" 
      [value]="dataset" scrollable="true" 
      [style]="{'overflow':'hidden!important'}"  
      [responsive]="true" [stacked]="stacked" [filters]="GlobalFilterValue" [rows]="20" sortMode="multiple" [(selection)]="selectedRow"
       selectionMode="multiple"
      [resizableColumns]="true" columnResizeMode="expand" 
      [paginator]="true" 
      [globalFilter]="gb" 
      [rowsPerPageOptions]="[10,15,20,25]"
        appendTo="body" #dt>
        <p-column styleClass="checkbox ui-resizable-column" [style]="{'width': 'auto'}" selectionMode="multiple"></p-column>
        <p-column *ngFor="let col of cols;let j=index;"
         [style]="{'width':'130px','display':col.display} " 
          [field]="col.field" 
         [header]="col.header"
         [sortable]="true" 
         [filter]="true" filterPlaceholder="Search" (mouseleave)="hoveredIndex=null" filterPlaceholder="Search"
          appendTo="body">
        </p-column>
   </p-dataTable>

Solution

  • Solved I have used data table attribute and pass function name.

    [rowStyleClass]="lookupRowStyleClass"

    .HTML

    <p-dataTable emptyMessage="{{tbldatamsg}}" 
          [value]="dataset" scrollable="true" 
          [style]="{'overflow':'hidden!important'}" 
          [rowStyleClass]="lookupRowStyleClass"     
          [responsive]="true" [stacked]="stacked" [filters]="GlobalFilterValue" [rows]="20" sortMode="multiple" [(selection)]="selectedRow"
           selectionMode="multiple"
          [resizableColumns]="true" columnResizeMode="expand" 
          [paginator]="true" 
          [globalFilter]="gb" 
          [rowsPerPageOptions]="[10,15,20,25]"
            appendTo="body" #dt>
            <p-column styleClass="checkbox ui-resizable-column" [style]="{'width': 'auto'}" selectionMode="multiple"></p-column>
            <p-column *ngFor="let col of cols;let j=index;"
             [style]="{'width':'130px','display':col.display} " 
              [field]="col.field" 
             [header]="col.header"
             [sortable]="true" 
             [filter]="true" filterPlaceholder="Search" (mouseleave)="hoveredIndex=null" filterPlaceholder="Search"
              appendTo="body">
            </p-column>
       </p-dataTable>
    

    .ts

     /* Function for set css for updated rows */
      lookupRowStyleClass(rowData) {
        return rowData['modified']==='U' ?'ui-widget-updated-row':'ui-widget-NoUpdated-row';
      }
    

    .scss

    //Updated row
    ::ng-deep .ui-datatable tbody > tr.ng-star-inserted.ui-widget-updated-row{
        background-color:$updated-row-color;
    }