使用JQuery中javascript:;" onClick="javascript:tagshow(event, 'ajax');" target="_self">ajax方法访问web服务。
1.ajax方法需要填写:
-
JScript. code
-
$.ajax({
type: " POST " ,
// 注明 返回Json
contentType: " 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 web服务类
-
C# code
-
[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;
}
}
说明:
ArrayList 中 存为对象CollegeDepartInfo
其属性为:stirng CollegeDepartTitle 和 int CollegeDepartId
在javascript中
ddlDepart.options[ddlDepart.length]=new Option(n.CollegeDepartTitle,n.CollegeDepartId);
Option的参数就是依据他们的。
最后重要的是:
类上方添加的
[ScriptService]
必须添加,否则ajax无法调用WebService