![]() |
В разных СТРОКАХ DataGrid разные ItemRenderer
Реально ли сделать сабж? На всякий поясню: в зависимости от одного из значений данных датасорса строка должна содержать ItemRenderer, наример, либо с ЧекБоксом либо с РадиоБаттоном. Реально ли такое сделать в принципе? Если реально - то как?
|
Лично я решал эту задачу, с помощью одного itemRender'a в котором был ViewStack. Возможно, это был не рационально - но тогда сгодилось.
|
Пасиб, хорошее решение. Если можно, кинь примерчик, а то я идею понял, но никак не соображу, как прикрутить... :-/
|
Сделал программно. В реднерере. НО!!! Допустим в dataProvider возвращается 2 записи. Рендерер при этом вызывается 2+1 раза! Т.е. он еще и для заголовка вызывается??? Как это обойти?
|
Для заголовка пользуется headerRenderer - это совсем другой ренедерер, если конечно и его задали тем же самым - то он и вызовется, в противном случае не должен.
Для того чтобы понять какой элемент в ViewStack пользовать, переопределите сеттер set data и смотрите что туда приходит и от этого значения дальше меняйте, что там вам нужно. |
Цитата:
Цитата:
И вопрос в том, что мой рендерер при 2-х записях вызывается 3 раза. И када через 10 сек. обновляем данные (отправляем на сервак запрос и получаем те же 2 записи), то происходит смещение моих компонентов. Если на пальцах: - при отображении ДатаГрида ЧекБокс РадиоБаттон - через 10 сек ЧекБокс ЧекБокс - еще через 10 сек РадиоБаттон ЧекБокс и т.д. Т.е. как бы по кругу ходит. Подозреваю, что это происходит потому, что при инициализации создается 3 объекта, а отображается тока 2. Один как бы в очереди остается и отображается тока при след. апдейте... Вот примерно так. Если что непонятно - спрашиваете, попробую продетализировать. |
У меня такая же проблема.. Я заметил что это именно первая строка дважды инициализируется, исправил костылями..
|
Ребят, а вы их добавляете просто как addChild()? Если да, то подозреваю происходит следущее.
Ваш дата провайдер обновляется/переписывается/меняется о чем уведомляется рендерер. Это может происходить много раз (приходит data) ,и вы каждый раз чего-то добавляете - и эти компоненты там просто копятся. Выход: пользовать states в рендерере (достаточно медленная) или viewStack. Если красивые рендереры нужны для редактирования каких-то специальных значений (например числа NumbericStepper'ом), то стоит смотреть в сторону ItemEditor'ов, т.к. такие "сложные" рендереры не самые быстрые. |
Цитата:
|
Цитата:
При обновлении data Childы добавляются с одинаковыми id-шниками... )) так что не копятся... Не должны по крайней мере. :cool: |
| Часовой пояс GMT +4, время: 20:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.