2011-03-01 103 views
1

我想基於cfgrid中的狀態條件更改單元格的顏色。根據數據更改cfgrid(html)單元格顏色

例如:

  1. 如果記錄的狀態爲過期,該小區將變爲紅色粗體姍姍來遲。
  2. 如果記錄的狀態爲「到期」(30天內),則單元格將變爲黃色並帶有粗體顯示。
  3. 如果記錄的狀態爲當前(由於日期超過30天),那麼細胞將是綠色與當前以粗體....

我只能找到渲染cfgridrow和CFGRIDCOLUMN。

回答

3

您應該使用ExtJS提供的列渲染器屬性。一個列的渲染器獲取三個參數,第二個是一個元對象,您可以在其中設置一個名爲attr的屬性,該屬性被設置爲單元格dom元素上的屬性。您可以爲例如電池的一些CSS樣式:在Ext.grid.ColumnModel documentation

+0

+1謝謝。 爲了將來的參考,您可以像這樣獲得列模型: 'var ruleGrid = ColdFusion.Grid.getGridObject('ruleGrid'); ruleGrid.colModel.setRenderer(6,function(value,meta,record){...});' – Wernsey 2011-09-06 11:05:47

0

var renderer = function(value, meta, record){ 
    if(value == "Overdue") { meta.attr = 'style="color:red;font-weight:bold"'; } 
    if(value == "Due") { meta.attr = 'style="color:yellow;font-weight:bold"'; } 
    if(value == "Current") { meta.attr = 'style="color:green"'; } 
    return value; 
} 

檢查setRenderer我使用類似的東西,你需要列在網格中顯示截止日期:

{ 
header: 'Expiration Date',  
dataIndex: 'ExpireDate', 
renderer: function (value, metaData, record, rowIndex, colIndex, store) { 

    if (record.get ('ExpireDate') < new Date ().clearTime ()) { 
     metaData.css += ' y-grid3-expired-cell'; 
     value = '';  
    } 
    if (record.get ('ExpireDate').format ('m/d/Y') == '12/31/9999') { 
     metaData.css += ' y-grid3-non-expired-cell'; 
     value = ''; 
    }   
    value = (value == '') ? '' : record.get ('ExpireDate').format ('m/d/Y'); 
    }  
    return value;  
} 

}, 
使用css類的

是更健壯的解決方案,我的定義如下定義:

.y-grid3-expired-cell { 
    background:   #AA0000; 
} 

.y-grid3-non-expired-cell { 
background:   #00AA00; 
} 

只有你需要做的是添加自己的邏輯和風格...

相關問題