flex调用webservice中的自定义类的方法

 更新时间:2014年01月14日 14:57:18   作者:  
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>

相关文章

最新评论