Flex 3 - список - флажок itemrenderer включен свойство - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть список, использующий флажок itemrenderer. Поставщик данных - это собрание людей. Когда я загружаю данные из файла, каждый элемент списка показывает имя человека (last, first - labelFunction), а в выбранном свойстве флажка отображается включенное свойство этого человека . То есть.,

Смит, Дуг - [x] Уильямс, Боб - [] Моррис, Энн - [x]

Однако у каждого человека также есть свойство active . Я хочу отключить флажок для людей, которые неактивны (то есть «нельзя включать неактивных людей»). Я попробовал несколько методов, чтобы заставить это работать, включая то, что было предложено здесь http://forums.adobe.com/thread/416786, чтобы сделать то же самое в сетке данных. Однако ни один из них не работает, и все флажки включены независимо от статуса active пользователя. Вот мой основной код:

<mx:List id="peopleIncludedList"
     dataProvider="{someProvider}"
     labelFunction="peopleLabelFunction">
     <mx:itemRenderer>
          <mx:Component>
               <mx:CheckBox change="onChange(event)"
                    selected="{outerDocument.isIncluded(data)}">
                    <mx:Script>
                         <![CDATA[

                              private function onChange(e:Event):void
                              {
                                   ...
                              }
                         ]]>
                    </mx:Script>
               </mx:CheckBox>
          </mx:Component>
     </mx:itemRenderer>
</mx:List>

Любая помощь по этому вопросу будет принята с благодарностью. Спасибо.

- Ян

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

Поскольку stackoverflow только ежедневно уведомляет меня о новых ответах, я не стал активно изучать эту ветку и больше участвовал в работе советов Adobe. Во всяком случае, нашел решение. Ссылка здесь http://forums.adobe.com/message/3267367. Спасибо всем за ваши предложения и помощь!

0 голосов
/ 10 ноября 2010

Я воспользуюсь им, но иногда трудно сказать без выборочных данных.

Во-первых, не ссылайтесь на externalDocument в arenderer и не используйте привязку, вместо этого слушайте событие dataChange

<mx:List id="peopleIncludedList"
     dataProvider="{someProvider}"
     labelFunction="peopleLabelFunction">
     <mx:itemRenderer>
          <mx:Component>
               <mx:CheckBox change="onChange(event)" dataChange="onDataChange()">
                    <mx:Script>
                         <![CDATA[

                              private function onChange(e:Event):void
                              {
                                  // not sure what this method is doing
                              }
private function onDataChange():void{
 this.selected = isIncluded(data); // whatever your processing is
 if(data.person.active == true){
   this.enabled = true;
 } else {
   this.enabled = false;
 }
}
                         ]]>
                    </mx:Script>
               </mx:CheckBox>
          </mx:Component>
     </mx:itemRenderer>
</mx:List>
...