Hey, ruX is here.

flex: много DataGrid с одинаковыми столбцами

Есть такая ситуация: много DataGrid компонентов, но у них есть общее - один и тот же заголовок таблицы(проперти columns).

Задача - не дублировать колонки в каждой из таблиц, т.е. избежать вот такого
[cc lang="xml"]








[/cc]


Как известно, всё что описанно в mxml файле рано или поздно станет настоящими объектами actionScript(при обращении к ним). Значит можно вынести <mx:columns> куда нить на уровень <mx:Application> и дать ему какой нить ид, чтоб потом к нему можно было обращаться. В соответствии с документацией на DataGrid находим что свойство columns - это массив(Array) объектов DataGridColumn.

Пусть это будет так:
[cc lang="xml"]

.......






[/cc]

Теперь указываем откуда брать колонки:
[cc lang="xml"]

[/cc]
Сразу стало на много компактнее :). Это даже скомпилится, но во время выполнения будет ошибка -
Error #1034: type Coercion failed: cannot convert "dg_columns" to "mx.controls.DataGridClasses.DataGridColumn"

На этом месте я очень долго оставался, пока не дошло сделать биндинг {dg_columns}!
[cc lang="xml"]

[/cc]
И всё заработало :)


Я понимаю, что ошибка нубская,
однако, я не первый и не последний
с ней столкнулся/столкнётся и в моих
интернетах чего то не нашёл об этом
открытым текстом

Exit mobile version