2010-05-28 76 views
0

我從數據庫填充一個jqgrid,其中一列是紅色,藍色等顏色列。我可以根據來自數據庫的值設置此列的單元格顏色在運行時?在這種情況下我應該如何設置格式化程序?我試過這樣,但不工作如何在運行時設置jqgrid單元格顏色

var colorFormatter = function(cellvalue, options, rowObject) { 
     var colorElementString = '<div class="colorBlock" style="background-color: red;"></div>'; 
     return colorElementString; 
--- 
--- 
colModel: [ 
       { name: 'GroupName', index: 'GroupName', width: 200, align: 'left' }, 
       { name: 'Description', index: 'Description', width: 300, align: 'left' }, 
       { name: 'Color', index: 'Color', width: 60, align: 'left', formatter: colorFormatter}], 
+0

我刪除了class =「colorBlock」,它開始爲我工作 – 2011-05-25 08:19:31

回答

1

我正在改變基於狀態(「狀態」是數據列)的行的背景顏色。希望這可能有所幫助。下面是示例代碼:

<style> 
    .state_inactive { 
     background-color:##FF9999 !important; 
     border:1px solid ##A6C9E2; 
     color:##222222; 
    } 
</style> 

<script type="text/javascript"> 
    $j("#Grid").jqGrid({ 
     url:"getData.php", 
     datatype:"json", 
     colNames:['Name', 'Organization', 'Status'], 
     colModel:[{name:'name', index:'name'}, {name:'organization', index:'organization'}, {name:'status', index:'status'}], 
    }, 
    gridComplete:function() { 
     var ids = jQuery("#Grid").jqGrid('getDataIDs'); 

     for (var i = 0; i < ids.length; i++) { 
      var status = jQuery("#Grid").jqGrid("getCell", ids[i], 'status'); 

      if (status == "-20") { 
       $j('#' + ids[i]).removeClass("ui-widget-content"); 
       $j('#' + ids[i]).addClass("state_inactive"); 
      } 
     } 
    }) 
</script> 
0

貌似的jqgrid一個設計缺陷。

最好的方法是在加載過程中執行此操作,並且自定義格式化程序只有一個值,您可以在此處執行此操作。但是,你需要做的不是價值,而是在它的前面。

1

負載完整的呼叫添加到格式化顏色的功能:

loadComplete: function (data) { 
    $.each(data.rows, function (i, item) { 
     var rowId = data.rows[i].id || data.rows[i]._id_; 
     var myRow = new Array(item.valueOf()); 

     jQuery('#' + grid).setCell(rowId, colName, '', { background: 'red'}); 
    }); 
} 

你只需要添加代碼來檢查要應用的條件。

相關問題