使用XML文件和VBox容器在Accordion中显示数据的问题

时间:2011-02-21 20:14:05

标签: flex flex4 flexbuilder

我正在使用XML文件来填充我的Accordian。但我错过了一些没有在Accordian中展示VBox标签的东西。我试图从我的XML文件中获取标签,即每个用户的“名称”应出现在Accordian的每个Vbox上。

您能否发现以下代码中的任何逻辑错误:

XML文件:currentUsers.xml

 <currentUsers>     
               <user>   
                  <name>Tom</name>  
                  <age>34</age>
               </user>
               <user>   
                  <name>Jerry</name>    
                  <age>99</age>
              </user>
 </currentUsers>

MXML文件:

 <fx:Script>
            <![CDATA[
                import mx.rpc.events.ResultEvent;
                import mx.collections.ArrayCollection;

            [Bindable] private var userArray : ArrayCollection;

            private function serviceHandler(event:ResultEvent):void{
                userArray = event.result.currentUsers.user;
            }   

            private function send_data():void{ 
                    service.send(); 
            } 
        ]]>
    </fx:Script>

<fx:Declarations>
        <mx:HTTPService id="service" url="currentUsers.xml" result="serviceHandler(event)"/>
    </fx:Declarations>

<mx:Accordion includeIn="UserList" x="10" y="10" width="554" height="242">
        <mx:Repeater id="rep" dataProvider="{userArray}">
            <mx:VBox width="100%" height="100%"
                     verticalAlign="middle" horizontalAlign="center"
                     label="{rep.currentItem.user}"  >
            </mx:VBox>
        </mx:Repeater>
</mx:Accordion>

1 个答案:

答案 0 :(得分:0)

没关系。发现了问题。

VBox的标签应该设置为currentItem.name,而不是currentItem.user。

<mx:VBox width="100%" height="100%"
                     verticalAlign="middle" horizontalAlign="center"
                     label="{rep.currentItem.name}"  >
</mx:VBox>

谢谢大家。