本文執行個體講述了JQuery中ajax方法訪問web服務。分享給大家供大家參考。具體分析如下:
說明: ArrayList 中 存為對象CollegeDepartInfo 其屬性為:stirng CollegeDepartTitle 和 int CollegeDepartId 在javascript中 ddlDepart.options[ddlDepart.length]=new Option(n.CollegeDepartTitle,n.CollegeDepartId); Option的參數就是依據他們的。 最後重要的是: 類上方添加的 [ScriptService] 必須添加,否則ajax無法調用WebService
jquery代碼部分:
$.ajax({type: "POST",//註明 返回JsoncontentType:"application/json;utf-8",//CollegeDepartWebServices.asmx web服務名 /GetCollegeDepart 方法名url:"CollegeDepartWebServices.asmx/GetCollegeDepart",//strDepartId 參數名稱 collegeId 參數值data:"{strDepartId:"+collegeId+"}",dataType:"json",success:function(result){ var json=null try { if(result) { //因為返回的是ArrayList 所以迴圈取出其中的值 $.each(result, function(i, n){ //ddlDepart 為下來菜單。迴圈的向下拉式功能表中添加新的選項 ddlDepart.options[ddlDepart.length]=new Option(n.CollegeDepartTitle,n.CollegeDepartId); }); } } catch(e) { alert("錯誤>>"+e.message); return; } }, error:function(data) { alert(data.status+">>> "+data.statusText); }});
CollegeDepartWebServices.asmx.cs部分:
[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][ScriptService]public class CollegeDepartWebServices : System.Web.Services.WebService{ public CollegeDepartWebServices() { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } [WebMethod] [System.Xml.Serialization.XmlInclude(typeof(CollegeDepartInfo))] public ArrayList GetCollegeDepart(string strDepartId) { CollegeDepartBL.FlushCollegeDepartCache(); if (string.IsNullOrEmpty(strDepartId)) return null; ArrayList myList = CollegeDepartBL.GetCollegeDepartListByCollegeID(int.Parse(strDepartId)); return myList; }}
希望本文所述對大家的jquery程式設計有所協助。