Один рендерер элементов DataGrid для нескольких столбцов - PullRequest
0 голосов
/ 30 апреля 2010

Я пытаюсь создать Flex DataGrid, где имя и фамилия отображаются друг под другом, но в DataGridColumn

В идеале я бы хотел сделать что-то вроде

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

так что оба значения передаются в itemrenderer, возможно ли это?

Денис

1 Ответ

1 голос
/ 30 апреля 2010

ItemRenderer получает данные для всей строки, так что вы можете просто собрать их оттуда. Кроме того, вам может даже не понадобиться itemRenderer, потому что этот простой пример можно сделать с помощью labelFunction.

Однако не используйте dataField="firstName,lastName", как показано. Предполагая, что ваша строка коллекции имеет свойство firstName и lastName, вы можете сделать это следующим образом:

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

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

Обычно я использую labelFunction, когда мне просто нужно выполнить простые манипуляции со строками или форматирование, и itemRender, если мне нужны значки или другие элементы управления в ячейке.

...