• Flex调用WebService后的数据处理


    如果WebService返回的数据为DataTable或List<>类型,可以在每次读取数据的时候加入断点,然后观察最终生成数据的结构,断点最好加在ResultEvent事件内,因为这个时候才能确保从WebService获取到了数据

    下面的例子分别接收从WebService返回String、DataTable、List<>类型的数据,并作相应的处理

    WebService代码(.net):

    [WebMethod]
    public string GetString(string name)
    {
        return "你好," + name;
    }
    [WebMethod(Description = "该方法将返回DataTable类型的数据")]
    public DataTable GetDataTable()
    {
        DataTable dt = new DataTable("MusicList");
        dt.Columns.Add("ID");
        dt.Columns.Add("Song");
        dt.Columns.Add("Artist");
        DataRow dr = dt.NewRow();
        dr["ID"] = 1;
        dr["Song"] = "长途伴侣";
        dr["Artist"] = "刘德华";
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr["ID"] = 2;
        dr["Song"] = "如果我变成回忆";
        dr["Artist"] = "Tank";
        dt.Rows.Add(dr);
        return dt;
    }
    [WebMethod(Description = "该方法将返回List<>类型的数据")]
    public List<Music> GetList()
    {
        return new List<Music>
        {
            new Music
            {
                 ID = 3,
                 Song = "Nobody",
                 Artist = "wonder girls"
            },
            new Music
            {
                ID = 4,
                Song = "吃你煮的鱼",
                Artist = "南拳妈妈"
            }
        };
    }

    Flex代码:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     <mx:Script>
      <![CDATA[
      import mx.rpc.soap.mxml.Operation;
      import mx.controls.Alert;
      import mx.rpc.events.FaultEvent;
      import mx.rpc.events.ResultEvent;
      import mx.rpc.soap.WebService;
      
      internal function onResult(evt:ResultEvent):void
      {
       var funcName:String = evt.target.name;
       switch(funcName)
       {
        case "GetString":
         Alert.show(evt.result.toString());
         break;
        case "GetDataTable":
         myGrid.dataProvider = ws1.GetDataTable.lastResult.Tables.MusicList.Rows;
         break;
        case "GetList":
         myGrid.dataProvider = ws1.GetList.lastResult;
         break;
        
       }
      }
       
      internal function onFault(evt:FaultEvent):void
      {
       Alert.show(evt.fault.faultDetail.toString());
      }
      ]]>
     </mx:Script>
     
     <mx:WebService id="ws1" wsdl="http://localhost:12354/Sample0729/WebService.asmx?wsdl">
      <mx:operation name="GetString" result="onResult(event);" fault="onFault(event);">
       <mx:request>
        <name>臣本布衣</name>
       </mx:request>
      </mx:operation>
      <mx:operation name="GetDataTable" result="onResult(event);" fault="onFault(event);" />
      <mx:operation name="GetList" result="onResult(event);" fault="onFault(event);" />
     </mx:WebService>
     
     <mx:DataGrid id="myGrid" x="167.5" y="67">
      <mx:columns>
       <mx:DataGridColumn headerText="ID" dataField="ID"/>
       <mx:DataGridColumn headerText="歌曲名称" dataField="Song"/>
       <mx:DataGridColumn headerText="歌手" dataField="Artist"/>
      </mx:columns>
     </mx:DataGrid>
     
     <mx:Button label="返回字符串" click="ws1.GetString.send();" x="115" y="266"></mx:Button>
     <mx:Button label="返回DataTable" click="ws1.GetDataTable.send();" x="258" y="266"></mx:Button>
     <mx:Button label="返回List(泛型)" click="ws1.GetList.send();" x="410" y="266"></mx:Button>
    </mx:Application>
  • 相关阅读:
    Cocos Creator JSZip压缩
    手游游戏资源提取 (破解、AssetStudio、VGMToolbox、disunity、Il2CppDumper、 .NET Reflector)
    Cocos Creator Cannot read property 'load' of null
    BOX2D物理游戏编程初学者指南+源码+FlashPlayer播放器
    [已解决]报错:XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
    [已解决]报错:pyecharts绘制图片时显示空白
    [未解决]yarn安装报错网络问题解决
    Mac Homebrew安装
    mac下docker镜像加速
    [已解决]报错:python3 geohash 导入错误
  • 原文地址:https://www.cnblogs.com/CoderWayne/p/1778090.html
Copyright © 2020-2023  润新知