2010-04-30 5 views
0

Je suis en train de créer un DataGrid Flex où le prenom et nom sont présentés sous l'autre, mais dans le DataGridColumnUn DataGrid Item Renderer pour plusieurs colonnes

Idéalement je voudrais faire quelque chose comme

<mx:columns> <mx:DataGridColumn headerText="Column 2" dataField="time"/> <mx:DataGridColumn headerText="Column 2" dataField="firstname,lastname" itemRenderer="renderers.FirstNameLastName"/>

de sorte que les deux valeurs sont transmis à l'itemRenderer, est-ce pos sible?

Dennis

Répondre

1

Le itemRenderer obtient les données pour toute la ligne, de sorte que vous pouvez simplement l'assembler à partir de là. De plus, vous n'avez peut-être même pas besoin d'un itemRenderer car cet exemple simple peut être fait en utilisant un labelFunction.

N'utilisez cependant pas dataField="firstName,lastName" comme vous le montrez. En supposant que votre ligne de la collection a un prenom et une propriété lastName, vous pouvez le faire comme ceci:

private function lastNameFirstName(item:Object, column:DataGridColumn) : String { 
    return item.lastName + ", " + item.firstName; 
} 

... 
<mx:DataGridColumn headerText="Column 2" labelFunction="lastNameFirstName"/> 
... 

J'utilise généralement labelFunction quand j'ai juste besoin de faire des manipulations simples de chaîne ou de mise en forme, et un itemRender si je besoin d'icônes ou d'autres contrôles dans la cellule.

Questions connexes