ASP.NET AJAX中 複雜數據類型使用簡單實例

aspx頁面

<asp:ScriptManager ID="ScriptManager1" runat="server">
	<Services>
		<asp:ServiceReference Path="ComplexType.asmx" />
	</Services>
</asp:ScriptManager>
		
<input type="button" value="Double Salary" οnclick="doubleSalary()" />
<input type="button" value="Reverse" οnclick="reverse([1, 2, 3, 4, 5])" />
<input type="button" value="Get Employees" οnclick="getEmployees()" />
		
<script language="javascript" type="text/javascript">
	function doubleSalary()
	{
		var employee = new Object();
		employee.FirstName = "Jeffrey";
		employee.LastName = "Zhao";
		employee.Salary = 1000;
				
		ComplexType.DoubleSalary(employee, doubleSalarySucceeded);
	}
			
	function doubleSalarySucceeded(result)
	{
		var message = String.format(
			"First Name: {0}\nLast Name: {1}\nFull Name: {2}\nSalary: {3}",
			result.FirstName,
			result.LastName,
			result.FullName,
			result.Salary);
				
			alert(message);
	}
			
	function reverse(array)
	{
		ComplexType.Reverse(array, function(result){alert(result);});
	}
			
	function getEmployees()
	{
		ComplexType.GetEmployees(getEmployeesSucceeded);
	}
			
	function getEmployeesSucceeded(result)
	{
		for (var key2 in result)
		{
		    alert(key2 + ": " + result[key2].Salary)
		}
	}
			
</script>


ComplexType.asmx頁面

<%@ WebService Language="C#" Class="ComplexType" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class ComplexType  : System.Web.Services.WebService {

	[WebMethod]
	public Employee DoubleSalary(Employee employee)
	{
		employee.Salary *= 2;
		return employee; 
	}

	[WebMethod]
	public List<int> Reverse(List<int> list)
	{
		list.Reverse();
		return list;
	}

	[WebMethod]
	public IDictionary<string, Employee> GetEmployees()
	{
		Dictionary<string, Employee> result = new Dictionary<string, Employee>();

		Employee emp1 = new Employee();
		emp1.FirstName = "Jeffrey";
		emp1.LastName = "Zhao";
		emp1.Salary = 1000;
		result[emp1.FullName] = emp1;

		Employee emp2 = new Employee();
		emp2.FirstName = "Tom";
		emp2.LastName = "Chen";
		emp2.Salary = 2000;
		result[emp2.FullName] = emp2;

		return result;
	}
}


Employee.cs類頁面代碼

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for Employee
/// </summary>
public class Employee
{
	public string FirstName;

	public string LastName;

	public int Salary;

	public string FullName
	{
		get
		{
			return this.FirstName + " " + this.LastName;
		}
	}
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章