2009-05-11 6 views
0

У меня есть datagrid с пользовательским itemRenderer. Когда я щелкаю по ячейке, я получаю ее ссылку. Теперь я хотел бы получить ссылку на другой столбец в строке sae. , например. В datagrid я щелкнул в 4-м столбце 3-й строки, я получаю ссылку на это без проблем. Теперь я хотел бы получить ссылку на 1-й столбец той же строки, что и на третьем.flex air datagrid itemRenderer

Есть ли способ?

Спасибо.

ответ

0

Ваши пользовательские средства визуализации элементов должны управляться данными. Другими словами, все, что вам нужно, должно быть в свойствах данных «render». Если вам нужно манипулировать другой ячейкой, вы должны манипулировать данными для строки, и ячейка должна обновляться сама.

Именно по этой причине вам трудно с этим справиться - нет хорошего способа получить ссылку на другую ячейку. Есть плохие пути, но они плохо :)

0

не знаю, если я понимаю, это совершенно правильно, но здесь идет ...

положить на ваш DataGrid щелчок событие

<mx:DataGrid id="myDatagrid" click="getValues()" dataProvider="{someArrayColl}"/> 

пусть говорим, что первый столбец имеет имя: «id_column» между строками сценария:

private function getValues():void{ 
var first_column_value:String = myDatagrid.selectedItem.id_column; 

//if you want the entire row in 1 Array 
var the_selected_row:Array = myDatagrid.selectedItem as Array; 
} 

не испытанное заявлением массива, но он должен работать. myDatagrid.selectedItem по умолчанию является объектом arraycollection.

// вы должны поместить оператор try и catch в функцию getValues, чтобы поймать исключение, когда пользователи нажимают на заголовок или панель прокрутки datagrid.

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