2011-08-18 22 views
0

使用的ItemRenderer的我有一個關於在Flex 3 DataGrid的着色行的問題。我想,讓一切在「基本」和「低於基礎」行紅:我怎樣纔能有條件顏色DataGrid行文字中的Flex 3

<mx:DataGrid id="myGrid" 
    width="450" 
    dataProvider="{initDG}" 
    showHeaders="false"> 

    <mx:columns> 
    <mx:DataGridColumn dataField="Indicator" itemRenderer="com.dcscore.ColorCells2"/> 
    <mx:DataGridColumn id="schoolColumn" dataField="Result" fontWeight="bold" itemRenderer="com.dcscore.ColorCells2"/> 
    </mx:columns> 
</mx:DataGrid> 

我的ItemRenderer是:

package com.mySite { 

    import mx.controls.Label; 
    import mx.controls.dataGridClasses.*; 

    public class ColorCells2 extends Label { 
     override public function set data(value:Object):void 
    { 
     if(value != null) 
     { 
      super.data = value; 

       if(value[DataGridListData(listData).dataField] == "Basic:"){ 
        setStyle("color", 0xFF0000)} 

       if(value[DataGridListData(listData).dataField] == "Below Basic:"){ 
        setStyle("color", 0xFF0000)}  



     } 
    } 
    } 

} 

我可以得到「基本」和「低於基礎」來在指標欄中顯示爲紅色。但是,如何獲得「結果」列中的相應值顯示爲紅色。我不知道如何引用這些單元格。

總之,我想使整個「下面」和「低於基礎」行顯示爲紅色。有什麼建議麼?

回答

0

如果你知道你是比較根據數據項始終是「指標」,那麼引用數據項明確,所以無論哪個列要渲染你的條件邏輯總是適用於「指標」,造成所有列根據該數據項的值進行着色。

override public function set data(value:Object):void 
{ 
    if(value != null) 
    { 
    super.data = value; 

    if(value["Indicator"] == "Basic:") 
     setStyle("color", 0xFF0000); 

    if(value["Indicator"] == "Below Basic:") 
     setStyle("color", 0xFF0000); 
    } 
}