igGrid dynamically updating column classes

by georgianastasov

HTML

<script src="https://igniteui.com/js/modernizr.min.js"></script>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script>
<script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script>
<script src="https://igniteui.com/js-data/nw-products"></script>
<link href="https://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet"></link>
<link href="https://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet"></link>

<table id="grid"></table>

CSS

.someclass {
  padding:0.5rem;
  background-color: lightblue;
}

.somethingelseclass {
   padding:0.5rem;
   background-color: lightgreen;
}

JavaScript

$(function () {
            // Sample data
            var data = [
                { ID: 1, Name: "John", Action: "View" },
                { ID: 2, Name: "Jane", Action: "Edit" },
                { ID: 3, Name: "Smith", Action: "Delete" }
            ];

            // Initialize igGrid
            $("#grid").igGrid({
                width: "100%",
                height: "400px",
                primaryKey: 'ID',
                autoGenerateColumns: false,
                columns: [
                    { headerText: "ID", key: "ID", dataType: "number", width: "10%" },
                    { headerText: "Name", key: "Name", dataType: "string", width: "40%" },
                    {
                        headerText: "Action",
                        key: "Action",
                        unbound: false,
                        width: "50%",
                        template: '<div><span id="action-${ID}" class="someclass">${Action}</span></div>'
                    }
                ],
                dataSource: data,
                features: [
                    { name: "Sorting" },
                    { name: "Filtering" }
                ],
                dataBound: function () {
                    setTimeout(() => {
                    		$("#action-1").removeClass("someclass").addClass("somethingelseclass");
                    		$("#action-2").removeClass("someclass").addClass("somethingelseclass");
                    		$("#action-3").removeClass("someclass").addClass("somethingelseclass");
										}, 50);
                }
            });
        });