Reputation: 101
How can I insert alternating row background color in jqGrid?
Upvotes: 10
Views: 12961
Reputation: 6667
Call loadComplete function to change background color of row in jqgrid.
loadComplete : function() {
$("tr.jqgrow:odd").addClass('myAltRowClassEven');
$("tr.jqgrow:even").addClass('myAltRowClassOdd');
},
for applying styles to background use below css.
<style type="text/css">
.myAltRowClassEven { background: #E0E0E0; border-color: #79B7E7; }
.myAltRowClassOdd { background: orange; }
</style>
Or
For changing row font in jqgrid see click below link
How can I change Background colour and Font of any row in JQGrid?
Upvotes: 0
Reputation: 99
Hello first defines the css:
<style type="text/css">
......
.Color_Red { background:red; }
.Color_Cyan { background:cyan; }
......
Then in jqGrid ...
$("#list2").jqGrid({
........
loadComplete: function() {
var rowIDs = jQuery("#list2").getDataIDs();
for (var i=0;i<rowIDs.length;i=i+1){
rowData=jQuery("#list2").getRowData(rowIDs[i]);
var trElement = jQuery("#"+ rowIDs[i],jQuery('#list2'));
// Red
if (rowData.Estado == 0) {
trElement.removeClass('ui-widget-content');
trElement.addClass('Color_Red');
}
// Cyan
if (rowData.Estado == 2) {
trElement.removeClass('ui-widget-content');
trElement.addClass('Color_Cyan');
}
}
},
});
Thus we walk the rows and apply RED to fulfill the condition that == 0 and Cyan which satisfy the condition == 2.
You should change rowData.XXX == XX by column name and value to check.
I have it this way and it works perfectly.
Luck!
Upvotes: 0
Reputation: 6831
function applyZebra(containerId) {
$('#' + containerId + ' tr:nth-child(even)').addClass("jqgrow evenTableRow");
$('#' + containerId + ' tr:nth-child(odd)').addClass("jqgrow oddTableRow");
}
ContainerId is your jqGrid ID. Call this method on the "gridComplete" event of your jqGrid.
Upvotes: 2
Reputation: 900
To use the jQuery UI theme use this code:
$('#'+gridName+' tr:nth-child(even)').removeClass("ui-priority-secondary");
$('#'+gridName+' tr:nth-child(odd)').addClass("ui-priority-secondary");
I use this code when I perform manual sorting (drag-n-drop)
Upvotes: 2
Reputation: 126547
Look at the altRows
and altclass
options. Beware of the typically inconsistent capitalization! This does use the jQuery UI theme if you're using jqGrid 3.5 or higher.
Upvotes: 9
Reputation: 83254
$("#myGrid").jqGrid({
...
gridComplete: function() {
var _rows = $(".jqgrow");
for (var i = 0; i < _rows.length; i += 2) {
_rows[i].attributes["class"].value += " alt";
}
}
});
Upvotes: -1