![]() |
изменение itemRender'a в List'e
Проблема следующая:
Имеется компонент, хранящий переменную "isLogin" и List компонент с custom itemRender. Код AS3:
Код AS3:
Замускаем -> переменная isLogin=false -> все отображается как надо -> мы логинемся -> переменная меняется isLogin=true -> а кнопка как была enabled = false так и осталось, меняется на true, только после того как мы проскролим лист.... Почему кнопка не становится enabled = true, сразу как мы меняем значение переменной "isLogin" на true, ведь переменная "isLogin" "забиндина"? |
в таких случаях лучше инкапсулировать класс
- создать переменную внутри ItemRenderer, и назначать ее из List |
Лучше напрямую Рендереру ничего не давать, а управлять через датаПровайдер. Но для решения вашей проблемы видно несколько способов (правда все почти корявые).
1) Пробежаться по даталисту и сменить свойство изЛогин у каждого объекта (не рендерера) 2) Сделать паблик статическую переменную в рендерере (фууу) 3) Сделать рендерер без кнопки(зачем она нам дисабленная во всех рендерерах - не красиво же) и менять его при смене изЛогин (хм) 4) Что нить более правильное. Добавлено через 2 минуты Вдогонку, вообще не люблю рендереры с кнопками. Лучше галочки! Тогда доступны массовые операции. Одну кнопку легче залочить. |
Цитата:
Добавлено через 6 часов 25 минут Вобщем решил я эту задачу: пришлось вносить новый параметр в базу, которая указывается dataProvider'ом в List... Но, хотелось бы "услышать" другие варианты, решения этой задачи. |
А мои не рассматривали? :о(( И нашли совсем аццки брутальный...
|
Цитата:
Цитата:
Цитата:
Цитата:
|
1) dataProvider="{dataList}"
dataList у вас кто? В принципе не важно, каждому объекту-элементу этого списка можно менять проперть (не на сервере), которая прибиндена к енаблю кнопки. 2) moiListItemRenderer.isLogin = true; В принципе я не рассмотрел еще вероятность того что, isLogin скорее всего переменная для всего приложения, которая показывает залогинен ли юзер в этом приложении, таким образом, проще всего ее сделать статично публичной. И еще как вариант можно попробовать при смене изЛогин проинвалидейтить лист, правда я не знаю можно ли. Тогда по идее ваш первоначальный код будет работать. Но мне самому все это не очень нравится, как я уже говорил. |
В принципе задача и была решена, способом номер 1, просто не сразу понял, что Вы имеете ввиду...
А вот пункт номер 2, я так и не понял. покажи примером) |
| Часовой пояс GMT +4, время: 10:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.