2010-04-30 2 views
0

Я пытаюсь создать Flex DataGrid, где Firstname и Lastname показаны друг под другом, но в DataGridColumnOne DataGrid Пункт Renderer для нескольких столбцов

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

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

так, что оба значения получают передаются ItemRenderer, эта позиция sible?

Деннис

ответ

1

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

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

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

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

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

Смежные вопросы