Как можно условно раскрасить текст строки DataGrid с помощью ItemRenderer в Flex 3 - PullRequest
0 голосов
/ 18 августа 2011

У меня есть вопрос о раскраске строк в Flex 3 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)}       



        }
     }
  }

}

Я могу сделать так, чтобы «Основные» и «Ниже базовых» отображались красным цветом в столбце «Индикатор». Но как мне получить соответствующие значения в столбце Result, чтобы они выглядели красными? Я не знаю, как ссылаться на эти клетки.

Короче говоря, я хочу, чтобы все строки «Ниже» и «Ниже уровня» выглядели красными. Есть предложения?

1 Ответ

0 голосов
/ 18 ноября 2011

Если вы знаете, что элемент данных, с которым вы сравниваете, всегда имеет значение «Индикатор», тогда явно указывайте этот элемент данных, поэтому независимо от того, какой столбец вы отображаете, ваша условная логика всегда применяется к «Индикатору», в результате чего все столбцы окрашены в зависимости от значения этого элемента данных.

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