This Is A FineDay

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 0 文章 :: 69 评论 :: 0 Trackbacks
Repeater remote object 嵌套似乎又是flex的一个Bug,郁闷了一天
最终解决方法用Script初始化数据

<mx:Label text="{new2.currentItem.@label2}" /> OK
<mx:Label text="{ppt.currentItem.typeName}" /> NOK
<mx:Label text="{ppt.currentItem.typeName}" creationComplete="accChildCreationComplete(event);" width="100%"/>   OK

 1<mx:XMLListCollection id="xmlListColl">
 2        <mx:source>
 3            <mx:XMLList>
 4                <node label="One">
 5                    <node2 label2="One.1" />
 6                    <node2 label2="One.2" />
 7                    <node2 label2="One.3" />
 8                </node>
 9                <node label="Two">
10                    <node2 label2="Two.1" />
11                    <node2 label2="Two.2" />
12                    <node2 label2="Two.3" />
13                </node>
14            </mx:XMLList>
15        </mx:source>
16    </mx:XMLListCollection>
17    <mx:Accordion id="accoridLeft"
18                  resizeToContent="true"
19                  width="100%">
20           <mx:Repeater id="news" dataProvider="{xmlListColl}">
21            <mx:VBox label="{news.currentItem.@label}">
22                <mx:VDividedBox horizontalAlign="left" paddingLeft="15">
23                         <mx:Repeater id="new2" dataProvider="{news.currentItem.node2}">
24                        <mx:VBox label="{new2.currentItem.@label2}">
25                            <mx:Label text="{new2.currentItem.@label2}" click="onClick1(event);"/>
26                        </mx:VBox>
27                     </mx:Repeater>
28                </mx:VDividedBox>
29            </mx:VBox>       
30        </mx:Repeater>
31    </mx:Accordion>

    <mx:Script>
        
<![CDATA[
        import mx.rpc.events.ResultEvent;
        import mx.events.FlexEvent;
        import mx.utils.ArrayUtil;
        import mx.collections.ArrayList;
        import mx.collections.ArrayCollection;
        import mx.controls.Alert;
        import mx.effects.easing.*;

        public function init():void {
            pts.getProductTypeMenu();
        }

        public function accChildCreationComplete(event:FlexEvent):void{
            event.target.text = String(event.currentTarget.getRepeaterItem().typeName);
        }

        
]]>
    
</mx:Script>
    
<mx:RemoteObject id="pts" destination="productTypeService">
    
</mx:RemoteObject>
    
<mx:Accordion id="accoridLeft"
                  resizeToContent
="true"
                  width
="100%">
        
<mx:Repeater dataProvider="{pts.getProductTypeMenu.lastResult}" id="pt">
            
<mx:VBox label="{pt.currentItem.typeName}" width="100%">
                
<mx:Repeater dataProvider="{pt.currentItem.productTypes}" id="ppt">
                    
<mx:Label text="{ppt.currentItem.typeName}" creationComplete="accChildCreationComplete(event);" width="100%"/>
                
</mx:Repeater>
            
</mx:VBox>
        
</mx:Repeater>
    
</mx:Accordion>


posted on 2009-01-15 11:20 Peter Pan 阅读(385) 评论(0)  编辑  收藏 所属分类: FLEX

只有注册用户登录后才能发表评论。


网站导航: