You are right you are not the first person who ask the question. To clear the situation with the cell color I made the demo
for you which change the text color of the cell or the background color of the sell in different ways:
loadComplete: function() {
// 2 is zero-base index of the column 'name' ('Client'). Every from the options
// multiselect:true, rownumbers:true and subGrid:true will increase
// the index by 1 because the option inserts additional columns
$("#6 td:eq(2)", grid[0]).css({color:'red'});
grid.jqGrid('setCell',"12","name","",{color:'red'});
grid.jqGrid('setCell',"10",'name', '', 'my-highlight');
grid.jqGrid('setCell',"8",'name', '', 'ui-state-error ui-state-error-text');
grid.jqGrid('setCell',"4","name","",{'background-color':'yellow',
'background-image':'none'});
grid.jqGrid('setCell',"3","name","",'ui-state-highlight');
}
where
<style type="text/css">
.my-highlight { color: red; }
</style>
and "3", "4", "6", "8", "10" and "12" are th rowid of the rows where the color of the corresponding column will be changed.
By the way my personal favorites are the ways using 'ui-state-highlight' or 'ui-state-error ui-state-error-text' classes which are the part of the jQuery UI Themes.
UPDATED: To understand the difference of the usage of different methods in case of the usage of another jQuery UI Theme I added one more demo used La Frog Theme where the same table as above look like the following: