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
Neueste Kommentare