2011-08-18 4 views
0

Flex 3 DataGrid에서 행의 색상을 지정하는 방법에 대한 질문이 있습니다.Flex에서 ItemRenderer를 사용하여 조건부로 DataGrid 행 텍스트를 색칠하는 방법

<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); 
    } 
}