先看代码:
Default2.aspx:
Default2.aspx:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > 无标题页 </ title >
< script type ="text/javascript" > ...
//由button调用
function CallServer(inputcontrolname, context) //可以将context 改成任意名字【这里改了下面都要改】
...{
var tempdata = document.getElementById(context.toString());//.innerHTML = "Loading";
//aa
tempdata.innerHTML = "LOADING.......";
arg = document.getElementById(inputcontrolname.toString()).value;
//注册回调方法
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "tempdata")%>;
//GetCallbackEventReference方法的参数意义,可以在CS文件中查看其提示【因为ClientScript是Page类的属性,这里只是前台调用形式】
//其中tempdata 是一个临时变量,用来储存在回调之前脚本处理的结果,然后等回调结束后以便继续使用回调前处理的结果
//【即1.执行脚本并将脚本执行结果存入tempdata,2.开始回调,3.回调结束,脚本获控制权继续使用tempdata存储的数据进行计算。。。】
//即tempdata变量是为ReceiveServerData函数服务用的
}
//在回调方法中注册的接收返回结果的函数
function ReceiveServerData(res,tempdata)
...{
alert("暂存的数据为 | " + tempdata.innerHTML.toString());
tempdata.innerHTML = res;
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< input id ="Button1" type ="button" value ="提交到Label1" onclick ="CallServer('TextBox1', 'Label1')" />< br />
< asp:Label ID ="Label1" runat ="server" Text ="Label1:" ></ asp:Label >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > 无标题页 </ title >
< script type ="text/javascript" > ...
//由button调用
function CallServer(inputcontrolname, context) //可以将context 改成任意名字【这里改了下面都要改】
...{
var tempdata = document.getElementById(context.toString());//.innerHTML = "Loading";
//aa
tempdata.innerHTML = "LOADING.......";
arg = document.getElementById(inputcontrolname.toString()).value;
//注册回调方法
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "tempdata")%>;
//GetCallbackEventReference方法的参数意义,可以在CS文件中查看其提示【因为ClientScript是Page类的属性,这里只是前台调用形式】
//其中tempdata 是一个临时变量,用来储存在回调之前脚本处理的结果,然后等回调结束后以便继续使用回调前处理的结果
//【即1.执行脚本并将脚本执行结果存入tempdata,2.开始回调,3.回调结束,脚本获控制权继续使用tempdata存储的数据进行计算。。。】
//即tempdata变量是为ReceiveServerData函数服务用的
}
//在回调方法中注册的接收返回结果的函数
function ReceiveServerData(res,tempdata)
...{
alert("暂存的数据为 | " + tempdata.innerHTML.toString());
tempdata.innerHTML = res;
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< input id ="Button1" type ="button" value ="提交到Label1" onclick ="CallServer('TextBox1', 'Label1')" />< br />
< asp:Label ID ="Label1" runat ="server" Text ="Label1:" ></ asp:Label >
</ div >
</ form >
</ body >
</ html >
Default2.aspx.cs :
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Default2 : System.Web.UI.Page,ICallbackEventHandler
... {
private string temp;
protected void Page_Load(object sender, EventArgs e)
...{
//this.ClientScript.GetCallbackEventReference("", "", "", "");
}
ICallbackEventHandler 成员#region ICallbackEventHandler 成员
public string GetCallbackResult()
...{
return "客户端在[" + DateTime.Now.ToString() + "]传送来 [" + temp + "].";
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
...{
temp = eventArgument.ToString();
}
#endregion
}
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Default2 : System.Web.UI.Page,ICallbackEventHandler
... {
private string temp;
protected void Page_Load(object sender, EventArgs e)
...{
//this.ClientScript.GetCallbackEventReference("", "", "", "");
}
ICallbackEventHandler 成员#region ICallbackEventHandler 成员
public string GetCallbackResult()
...{
return "客户端在[" + DateTime.Now.ToString() + "]传送来 [" + temp + "].";
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
...{
temp = eventArgument.ToString();
}
#endregion
}
其中注释已经说的很明白了,只不过参数context我存储的是上下文对象的名字(即ID),但context完全可以存储对象[其实好像也是用ID来存储对象的]