I have built my JQGrid table with dynamic column in this way (ajax call) :
$.ajax(
{
    type: "POST",
    url: "Scripts/GetSummaryInformation.php",
    data: { domain: "<?php echo $domain; ?>", etc. },
    dataType: "json",
    success: function(result)
    {
        var colD = result.gridModel;
        var colN = result.colNames;
        var colM = result.colModel;
        var colSpan = result.colSpan;
        jQuery("#FinalRatingList<?php echo $domain; ?><?php echo $companyID; ?>").jqGrid({
             jsonReader : { repeatitems: false, root:"dataset", cell: "cell", id: "0" },
             url: 'Scripts/GetSummaryInformation.php',
             datatype: 'json',
             mtype: 'POST',
             postData : { domain: "<?php echo $domain; ?>", etc.},
        datastr : colD,
        colNames:colN,
        colModel :colM,
        height: 'auto',
        pager: jQuery('#FinalRatingListPager'),
        caption:"Final Rating",
        loadComplete: function(data){
            console.info("FinalRatingList Success");
            notyMsg ("loadComplete", "info");
    },
...
and it works fine :)
When I create a column in the PHP file like using the cellattr
$response->colModel[$colMod++] = array ('name'=>'DIR'.$projectName, 'index'=>'DIR'.$projectName, 'width'=>'40', "cellattr"=>"rowSetting" );
there is absolutely no effect at all. Even when I put code directly in the cellattr like this
"cellattr"=>"function( rowId, value, rowObject, colModel, arrData) { return ' style=\"background:orange\"'}" );
Does anyone have faced or know the solution to this problem?
Thanks in advance for your collaboration
UPDATE
Thanks Oleg. It worked greatly for cellattr and for template (which is a really good advice).
For those who are interested here is the code:
var rowSetting = function (rowId, val, rawObject, cm) {
    return 'style="background-color: orange;';
};
var cellattrMapping = {
    "rowTemplate": rowTemplate
};
var rowTemplate = {
    width:120,
    cellattr: rowSetting
};
AJAX CALL
success: function(result)
{
     ...
     for (i=0; i<colM.length; i++) {
         cm = colM[i];
         if (cm.hasOwnProperty("template") && cellattrMapping.hasOwnProperty(cm.template))
         {
             cm.template = cellattrMapping[cm.template];
         }