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);
}
});
});