flex如何調用webservice中的自定義類,下面有個不錯的示例,不了解的朋友可以參考下
代碼如下: public class ReturnResult { public int curIndex { get; set; } public DataTable idxList { get; set; } } //測試數據庫連接 [WebMethod(Description = "!!!測試數據庫連接,鏈接字符串在web.config中")] public bool conectDB() { strCon = ConfigurationSettings.AppSettings["sqlConDuke"]; conn = new SqlConnection(strCon); try { conn.Open(); return true; } catch (Exception) { return false; } finally { conn.Close(); } } 代碼如下: [WebMethod(Description = "根據 <b>照片名</b> 獲得詳細數據(DataTable),strTb,eg:PanView;strImgName,eg:20131019072740-0000150")] public DataTable getInfoByImgName(string strTb, string strImgName) { bool ifCon = conectDB(); if (ifCon) { string sql_BfCar = "SELECT * FROM dbo." + strTb + " where ImageName LIKE '%" + strImgName + "%'"; da = new SqlDataAdapter(sql_BfCar, conn); myds = new DataSet(); da.Fill(myds); return myds.Tables[0]; } else { return null; } } [WebMethod(Description = "根據 <b>照片名</b> 獲得所在Link的所有數據(ReturnResult),strTb,eg:PanView;strImgName,eg:20131019072740-0000150")] public ReturnResult getLinkDTByImgName(string strTb, string strImgName) { ReturnResult returnResult = new ReturnResult(); bool ifCon = conectDB(); if (ifCon) { returnResult.curIndex = Convert.ToInt32(getInfoByImgName(strTb, strImgName).Rows[0][0]); string strLinkGuid = getInfoByImgName(strTb, strImgName).Rows[0][1].ToString(); string sql_BfCar = "SELECT * FROM dbo." + strTb + " where LinkGuid LIKE '%" + strLinkGuid + "%'"; da = new SqlDataAdapter(sql_BfCar, conn); myds = new DataSet(); da.Fill(myds); returnResult.idxList = myds.Tables[0]; return returnResult; } else { return null; } } 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" creationComplete="application1_creationCompleteHandler(event)"> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; public var arr:ArrayCollection=new ArrayCollection(); public var aaa:String=new String(); protected function webservice1_faultHandler(event:FaultEvent):void { Alert.show(event.fault.toString()); } protected function getLinkDTByImgNameHandler(event:ResultEvent):void { // aaa=this.myweb.getLinkDTByImgName.lastResult.curIndex; // arr=this.myweb.getLinkDTByImgName.lastResult.idxList.Tables.Table.Rows; aaa=event.result.curIndex; arr=event.result.idxList.Tables.Table.Rows; Alert.show(aaa+" "+arr.length.toString()); } protected function application1_creationCompleteHandler(event:FlexEvent):void { myweb.getLinkDTByImgName("PanView","20131019072740-0000150"); } ]]> </fx:Script> <fx:Declarations> <!-- 將非可視元素(例如服務、值對象)放在此處 --> <s:WebService id="myweb" wsdl="http://10.19.1.55/serverPano/WebServiceDuke.asmx?WSDL" fault="webservice1_faultHandler(event)"> <s:operation name="getLinkDTByImgName" result="getLinkDTByImgNameHandler(event)"></s:operation> </s:WebService> </fx:Declarations> </s:Application>