Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.05.2008, 13:41
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 1  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Question В разных СТРОКАХ DataGrid разные ItemRenderer

Реально ли сделать сабж? На всякий поясню: в зависимости от одного из значений данных датасорса строка должна содержать ItemRenderer, наример, либо с ЧекБоксом либо с РадиоБаттоном. Реально ли такое сделать в принципе? Если реально - то как?

Старый 02.05.2008, 15:22
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Лично я решал эту задачу, с помощью одного itemRender'a в котором был ViewStack. Возможно, это был не рационально - но тогда сгодилось.

Старый 02.05.2008, 18:23
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 3  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Пасиб, хорошее решение. Если можно, кинь примерчик, а то я идею понял, но никак не соображу, как прикрутить... :-/

Старый 05.05.2008, 22:57
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 4  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Сделал программно. В реднерере. НО!!! Допустим в dataProvider возвращается 2 записи. Рендерер при этом вызывается 2+1 раза! Т.е. он еще и для заголовка вызывается??? Как это обойти?

Старый 06.05.2008, 00:57
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 5  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Для заголовка пользуется headerRenderer - это совсем другой ренедерер, если конечно и его задали тем же самым - то он и вызовется, в противном случае не должен.
Для того чтобы понять какой элемент в ViewStack пользовать, переопределите сеттер set data и смотрите что туда приходит и от этого значения дальше меняйте, что там вам нужно.

Старый 06.05.2008, 02:09
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 6  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Цитата:
Сообщение от Sneg Посмотреть сообщение
Для заголовка пользуется headerRenderer - это совсем другой ренедерер, если конечно и его задали тем же самым - то он и вызовется, в противном случае не должен.
Есть тока один Рендерер - itemRenderer

Цитата:
Сообщение от Sneg Посмотреть сообщение
Для того чтобы понять какой элемент в ViewStack пользовать, переопределите сеттер set data и смотрите что туда приходит и от этого значения дальше меняйте, что там вам нужно.
Я сделал без ViewStack. Просто по значению одного из полей dataProvider'а добавляю (addChild) либо ЧекБокс, либо РадиоБаттон.

И вопрос в том, что мой рендерер при 2-х записях вызывается 3 раза. И када через 10 сек. обновляем данные (отправляем на сервак запрос и получаем те же 2 записи), то происходит смещение моих компонентов.

Если на пальцах:
- при отображении ДатаГрида
ЧекБокс
РадиоБаттон
- через 10 сек
ЧекБокс
ЧекБокс
- еще через 10 сек
РадиоБаттон
ЧекБокс
и т.д.
Т.е. как бы по кругу ходит. Подозреваю, что это происходит потому, что при инициализации создается 3 объекта, а отображается тока 2. Один как бы в очереди остается и отображается тока при след. апдейте...

Вот примерно так. Если что непонятно - спрашиваете, попробую продетализировать.

Старый 06.05.2008, 10:32
max_oil вне форума Посмотреть профиль Отправить личное сообщение для max_oil Найти все сообщения от max_oil
  № 7  
Ответить с цитированием
max_oil

Регистрация: Mar 2008
Сообщений: 57
У меня такая же проблема.. Я заметил что это именно первая строка дважды инициализируется, исправил костылями..

Старый 06.05.2008, 11:23
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 8  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Ребят, а вы их добавляете просто как addChild()? Если да, то подозреваю происходит следущее.
Ваш дата провайдер обновляется/переписывается/меняется о чем уведомляется рендерер. Это может происходить много раз (приходит data) ,и вы каждый раз чего-то добавляете - и эти компоненты там просто копятся.
Выход: пользовать states в рендерере (достаточно медленная) или viewStack.

Если красивые рендереры нужны для редактирования каких-то специальных значений (например числа NumbericStepper'ом), то стоит смотреть в сторону ItemEditor'ов, т.к. такие "сложные" рендереры не самые быстрые.

Старый 06.05.2008, 18:59
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 9  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Цитата:
Сообщение от max_oil Посмотреть сообщение
У меня такая же проблема.. Я заметил что это именно первая строка дважды инициализируется, исправил костылями..
Можно подробней про костыли? А то я за вчера так и не придумал...

Старый 06.05.2008, 19:03
Borman2000 вне форума Посмотреть профиль Отправить личное сообщение для Borman2000 Найти все сообщения от Borman2000
  № 10  
Ответить с цитированием
Borman2000
 
Аватар для Borman2000

Регистрация: Dec 2006
Сообщений: 50
Отправить сообщение для Borman2000 с помощью ICQ
Цитата:
Сообщение от Sneg Посмотреть сообщение
Ребят, а вы их добавляете просто как addChild()? Если да, то подозреваю происходит следущее.
Ваш дата провайдер обновляется/переписывается/меняется о чем уведомляется рендерер. Это может происходить много раз (приходит data) ,и вы каждый раз чего-то добавляете - и эти компоненты там просто копятся.
Добавление лишней строки происходит ТОЛЬКО первый раз (первых заход на форму). Потом - всё по плану. Но лишняя запись никуда не девается.
При обновлении data Childы добавляются с одинаковыми id-шниками... )) так что не копятся... Не должны по крайней мере.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
datagrid , itemrenderer

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.