Farbe einer Reihe im DataGrid abhängig von Inhalt setzen

In ein DataGrid wird eine Liste mit Daten geladen, dabei sind die Datensätze entweder aktiv oder deaktiviert, was durch 1 bzw. 0 in dem Feld active dargestellt wird. In dem DataGrid soll das so dargestellt werden, dass die Textfarbe der Einträge mit active=0 etwas blasser ist, als die Farbe der anderen Einträge. Eine lange Recherche ergab, dass man dieses nur mit Hilfe eines Item Renderers lösen kann.

MXML DataGrid:

<mx:DataGrid dataProvider="{filterData}">
	<mx:columns>
		<mx:DataGridColumn dataField="name" headerText="Name"
			itemRenderer="classes.ActiveItemRenderer" />
	</mx:columns>
</mx:DataGrid>

Dann im Ordner/Package classes die Klasse ActiveItemRenderer als Ableitung von Label anlegen und das setzen:

package classes
{
	import mx.controls.Label;
 
	public class ActiveItemRenderer extends Label
	{
		public function ActiveItemRenderer()
		{
			super();
		}
 
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
			super.updateDisplayList(unscaledWidth, unscaledHeight);
 
 			if(data.active == 0) {
				setStyle("color", 0x999999);
			}
		}
 
	}
}

Quelle: Formatting a flex datagrid control using a custom item renderer
Das hier habe ich aber auch gefunden:
How to change datagrid’s row background color
Changing text color in a datagrid using item renderers

Kommentare sind geschlossen.