flex调用webservice绑定DataGrid

来源:互联网 发布:中信建投股票交易软件 编辑:程序博客网 时间:2024/06/08 06:05
flex代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" width="489" height="316">
 <s:layout>
  <s:BasicLayout/>
 </s:layout>
 <fx:Style source="searchFrm.css"/>
 <fx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   import mx.controls.Alert;
   import mx.controls.ComboBox;
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;
   
   public var array:ArrayCollection = new ArrayCollection(   
    [ {label:"有效", data:1}, {label:"无效", data:2}]);    
   
   protected function button1_clickHandler(event:MouseEvent):void
   {
    // TODO Auto-generated method stub
    this.visible=false;
   }
   
   public function selected():void{  
        //var box:ComboBox=new ComboBox();  
        provin.dataProvider = array;  
        for(var i:int=0;i<array.length;i++){  
                    if(array.getItemAt(i).data==2){  
                    //box.selectedItem = array.getItemAt(i);  
     provin.selectedIndex=i;  
                    break;  
                    }  
                }  
                //this.panel.addChild(box);  
   }
   
   protected function button2_clickHandler(event:MouseEvent):void
   {
    onTable();
   }
   
   internal function onRequest():void
   {
    dataService.Test();
   }
   
   internal function onTable():void
   {
    dataService.addEventListener(ResultEvent.RESULT,onSuccess);
    dataService.addEventListener(FaultEvent.FAULT,onFault);
    dataService.getprovin.send();
   }
   
   internal function onSuccess(evt:ResultEvent):void
   {
    //Alert.show(evt.result.toString());
    var arrC:ArrayCollection = this.dataService.getprovin.lastResult as ArrayCollection;
    bookGrid.dataProvider=arrC;
    //provin.dataProvider=arrC;
   }
   
   internal function onFault(evt:FaultEvent):void
   {
    Alert.show("调用WebService方法失败,详细:" + evt.fault.faultDetail.toString());
   }
  ]]>
 </fx:Script>
 <fx:Declarations>
  <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  <mx:WebService id="dataService" wsdl="http://localhost/client/Service.asmx?WSDL" useProxy="false" >
   <mx:operation name="getprovin" />
  </mx:WebService>
 </fx:Declarations>
 
 <s:Panel x="0" y="0" width="489" height="316" title="查询">
  <s:Label x="162" y="39" text="省:"/>
  <s:Label x="162" y="80" text="市:"/>
  <s:Label x="162" y="123" text="区:"/>
  <s:Label x="138" y="161" text="街道办:"/>
  <s:TextInput x="195" y="75" height="22"/>
  <s:TextInput x="195" y="116" height="22"/>
  <s:TextInput x="195" y="154" height="22"/>
  <s:Button x="168" y="218" label="查询" click="button2_clickHandler(event)"/>
  <s:Button x="268" y="218" label="关闭" click="button1_clickHandler(event)"/>
  <s:ComboBox x="195" y="32" id="provin"/>
  <mx:DataGrid x="331" y="131" id="bookGrid"  width="159">
   <mx:columns>
    <mx:DataGridColumn headerText="编号" dataField="Id"/>
    <mx:DataGridColumn headerText="代码" dataField="Area_code"/>
    <mx:DataGridColumn headerText="名称" dataField="Area_name"/>   
   </mx:columns>
  </mx:DataGrid>
 </s:Panel>
</s:Application>

webservice服务代码:
    [WebMethod]
    public List<M_bmarea> getprovin()
    {
        List<M_bmarea> list = new List<M_bmarea>();
        DataTable dt = bmareaBll.getProvin();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            M_bmarea area = new M_bmarea();
            area.Id = Convert.ToInt32(dt.Rows[i]["id"]);
            area.Area_code = dt.Rows[i]["Area_code"].ToString();
            area.Area_name = dt.Rows[i]["Area_name"].ToString();
            list.Add(area);
        }
        return list;
    } 
0 0
原创粉丝点击