PageMethods(WebService) 處理 class 型別
星期三, 四月 30, 2008 | 標籤: ASP.NET, JavaScript | 0 意見 |在書上看到這東東的應用..發現還蠻不錯的..就測試一下..看原始碼說故事摟..^^..
.aspx網頁上就丟兩個button..
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
</asp:ScriptManager>
<div>
<input type="button" value="test" onclick="getMsgC();" />
<input type="button" value="post" onclick="setMsgC();" />
</div>
</form>
</body>
<script type="text/javascript">
//抓取server端的class-------------------------------
function getMsgC()
{
PageMethods.getClass(5,4,3,getFinall);
}
function getFinall(result)
{
alert(result.a + ',' + result.b + ',' + result.c);
}
//設定server端的class,然後在取回class-------------------------------
function setMsgC()
{
var method = new setMsg();
method.a = 999;
method.b = 999;
method.c = 999;
PageMethods.setMehod(method,setFinall);
}
function setFinall(result)
{
alert(result.a + ',' + result.b + ',' + result.c);
}
</script>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Script.Services;
using System.Web.Services;
public partial class test_json : System.Web.UI.Page
{
//抓取server端的class
[WebMethod]
public static getMsg getClass(int msg1, int msg2, int msg3)
{
return new getMsg() { a = msg1, b = msg2, c = msg3 };
}
//設定server端的class
[WebMethod]
[GenerateScriptType(typeof(setMsg))]
[ScriptMethod(UseHttpGet = true)]
public static setMsg setMehod(setMsg obj)
{
return obj;
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
public class getMsg
{
public getMsg() { }
public int a { get; set; }
public int b { get; set; }
public int c { get; set; }
}
public class setMsg
{
public setMsg() { }
public int a { get; set; }
public int b { get; set; }
public int c { get; set; }
}
這些方法會是用json格式來傳遞資料,我們接到server端傳回來的東西後..就會經過Sys.Serialization.JavaScriptSerializer
來處理它..之後就會丟到我們設定的回呼函式..這樣就可以收到結果啦..
ADO.NET Data Services印象中也有提供一組專屬的js來做同樣的事情..沒用力去研究..
有錯要提醒一下ㄟ..
http://www.asp.net/AJAX/Documentation/Live/ClientReference/default.aspx



