flex读取xml及grid绑定显示

            private var b_addlistener:Boolean;
            protected function button11_clickHandler(event:MouseEvent):void
            {
                if(!b_addlistener) //防止多次添加侦听器。
                {
                    b_addlistener=!b_addlistener;
                    //trace("111");
                    
                    httpsvc1.url="http://localhost:8080/geoserver/test.xml";
                    httpsvc1.method="POST";
                    httpsvc1.addEventListener(ResultEvent.RESULT,function success(event:ResultEvent):void
                    {
                        
                        var head:ArrayCollection=new ArrayCollection();
                        //1.表头控制
                        //读取记录集字段名
                        var rs_head:ArrayCollection=new ArrayCollection();
                        if(event.result.rs.head.row is ObjectProxy)  
                        {
                            rs_head.removeAll();  
                            rs_head.addItem(event.result.rs.head.row);
                        }
                        else  
                            rs_head=event.result.rs.head.row;
                        //动态生成grid表头列
                        var j:int;
                        Alert.show(rs_head[0].col.length.toString());
                        if(rs_head.length<=0)
                        {
                            Alert.show("没有数据");
                            return;
                        }
                        else
                        {
                            for(j=0;j<rs_head[0].col.length;j++)
                            {
                                var gridcol:GridColumn=new GridColumn();
                                gridcol.headerText=rs_head[0].col[j].toString();
                                gridcol.dataField=rs_head[0].col[j].toString();
                                gridcol.width=100;
                                head.addItem(gridcol);
                            }
                        }
                        grid1.columns=head;
                        //2.数据绑定
                        //读取记录集数据
                        //!!!如果event.result.rs.data.row只有1个row对象(xml中只有一组row),得到的是proxy类型
                        //...如果有多个row对象(xml中有多组row),得到的是arraycollection
                        //!!!另外_rs的每一行的某列并不是_rs[i][j]来访问,而是_rs[i].col[j]来访问。 col是xml中row的子标签。
                        //...这个可以用调试模式,断点下查看_rs变量结构看到。
                        var _rs:ArrayCollection=new ArrayCollection();
                        if(event.result.rs.data.row is ObjectProxy)  
                        {
                            _rs.removeAll();  
                            _rs.addItem(event.result.rs.data.row);
                        }
                        else  
                            _rs=event.result.rs.data.row;
                        //形成标准dataprovider格式,显示到grid中。
                        var dp:ArrayCollection=new ArrayCollection();
                        var i:int;
                        for(i=0;i<_rs.length;i++)
                        {
                            //Alert.show(_rs[i].col[0].toString());
                            var dp_item:Object=new Object();
                            dp_item.username=_rs[i].col[0].toString();
                            dp_item.pwd=_rs[i].col[1].toString();
                            dp_item.time=_rs[i].col[2].toString();
                            dp.addItem(dp_item);
                        }
                        //row.username="";
                        grid1.dataProvider=dp;
                        
                    });
                        
                    httpsvc1.addEventListener(FaultEvent.FAULT,function fail(event:FaultEvent):void
                    {
                        Alert.show(event.fault.toString());
                    });
                }
                httpsvc1.send();

            }


        <s:HTTPService id="httpsvc1" url="http://localhost:8080/geoserver/test.xml" method="POST" >
        </s:HTTPService>


                        <s:DataGrid id="grid1" x="72" y="301">
                
                        </s:DataGrid>   


test.xml

<rs>
  <head>
    <row>
      <col>username</col>
      <col>pwd</col>
      <col>time</col>
    </row>
  </head>

  <data>
    <row>
      <col>aa1</col>
      <col>bb1</col>
      <col>cc1</col>
    </row>
    <row>
      <col>aa2</col>
      <col>bb2</col>
      <col>cc2</col>
    </row>
    <row>
      <col>aa3</col>
      <col>bb3</col>
      <col>cc3</col>
    </row>
  </data>
</rs>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值