Skip to content Skip to sidebar Skip to footer

How To Change The Color Of Row In Table (sapui5)?

I have a table in which data is coming from back end. Based on particular condition(data coming from back end (gateway service)), if that condition is true then that particular row

Solution 1:

Semantic colors for rows are now supported which can be leveraged by using the property highlight

  • on ColumnListItem when using sap.m.Table (since 1.44):

    <Tablexmlns="sap.m"><ColumnListItemhighlight="{= ${odataModel>foo} > 50 ? 'Error' : undefined }" /><!-- ... --></Table>
  • on RowSettings when using sap.ui.table.Table (since 1.48):

    <table:Table><table:rowSettingsTemplate><table:RowSettingshighlight="{= ${odataModel>foo} > 50 ? 'Error' : undefined }" /></table:rowSettingsTemplate><!-- ... --></table:Table>

    Table highlighted rows colors


Samples

Solution 2:

I think there are few different ways to change the colour, the easiest would be to change the style of the associate control

<control>.addStyleClass(myClass);
<control>.toggleStyleClass(myClass, true);

in the following example JsBin - alert overdue rows i use the following on a table row

row.$().addClass("overdue");

it adds the css style "overdue" to the domRef of the row

Solution 3:

I assume you've got regular HTML table, then:

$("table tr").each(function(){
    if( condition ){ //your condition eg. $(this).children("td:eq(1)").val() == sth
        $(this).css("background":COLOR);
    }
});

Solution 4:

@Ashish its very difficult using only sapui5. you need to use jquery in that case. If that condition is true get the row's index and have a selector of that and then use like

$('.myTable tr:nth-child('+rowindex+')').css("background-color","red")

Try this. not sure

Solution 5:

In UI5, I'm not sure if you can do this for a row at once, but you can certainly do this for a single cell using the valueState property:

var oConditionalColumn = new sap.ui.table.Column({
    label: new sap.ui.commons.Label({
        text: "Some label"
    }),
    template: (new sap.ui.commons.TextField({
        value     : "{myfield}",
        valueState : {
            parts : [myfield],
            formatter : function(oValue) {
                return (oValue === undefined || oValue == null || oValue == "" || isNaN(oValue) || parseInt(oValue) == 0) ? sap.ui.core.ValueState.Error : sap.ui.core.ValueState.None;
            }
        },
    }))
});

Or, when you load the model, set an extra calculated property in advance based on your condition, and use that property to render each cell in your row in a different color for the current row context with a mior modification of the above code.

Post a Comment for "How To Change The Color Of Row In Table (sapui5)?"