![]() |
ItemRender & RadioButton
В ItemRender отображается своя компонента содержащая Radiobutton. Как при выборе одного из них, отключить ранее выбранный radiobutton? Пытался из компоненты добраться хотябы до функции сброса всех предыдущих путём outerDocument.MyFunction, но это не срабаывает. Ругается что не может вызвать MyFunction ещё при компиляции.
|
parent.MyFunction
1 вариант из итем рендера отправлять ивент контейнеру у родителя накропать метод-слушатель в котором пробегаешь по детям и выключаешь ненужные 2 вариант статическое поле типа булеан в классе рендера, на него биндишь состояние всех экземпляров рендера, в кликнутом рендере игноришь состояние этого поля ( поле -> false ) |
Первый вариант тормознутый, второй вызовет проблемы при скроллинге.
Как вариант – использовать первый предложенный вариант, но при этом в родителе добавить поле для хранения ссылки на выбранный в данный момент элемент. При новом клике выключать текущий и включать новый. При этом надо убедиться, что RadioButton не попали в одну группу, а то проблем не оберетесь. В идеале, лучше использовать кнопки, которые выглядят как RadioButton, а состояние менять в данных. Сама кнопка при этом слушает изменения свойств в своем data и при изменениях меняет свой вид. |
Для датагрида я использую такой рендерер
Код AS3:
|
Просто для такого функционала в RadioButton много лишнего.
|
alatar, Волгоградец: мне даже проще изменить в самих данных. Данные хранятся в виде массива. Но при клике на радиокнопку, обрабатывается только скрипт относящийся к самой строке на которой он находится. А как обнолуить данные во всем массиве, находясь в в ItemRender? Ведь ItemRender описывает каким будет поле, и дублирует их по количеству строк (грубо говоря).
Добавлено через 2 минуты В примере Волгоградец немогу понять где происходит обнуление. Насколько я понял он получает данные, и в зависимости от него выводит данные, точне отображает выбрана ли кнопка или нет. Поправьте если я не прав. |
Обнуление будет происходить в наследнике DataGrid (List или в чем там у вас используется этот итем-рендерер), или в outerDocument, по клику на итеме (или по любому событию, которое вам приглянется).
|
Пробую какраз через outerDocument.MyFunction, но говорит что функция MyFunction не существует.
P.S.: ItemReader, точнее компоненты расположенные в ItemRender идут как отдельная компонента. Может ли это влиять? |
Покажите код.
|
Немного изменил код, теперь не ругается, но и не сбрасывается. Вот код:
Переменной Otv передаётся массив с данными. Код AS3:
|
| Часовой пояс GMT +4, время: 00:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.