* Asp.net 2.0 脚本回调技术:
* 首先,该页需要实现 System.Web.UI.ICallbackEventHandler 接口
public
partial
class
Default3 : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler;
... {
public string PostStr;
protected void Page_Load(object sender, EventArgs e)
...{
}
public void RaiseCallbackEvent(string eventArgument)
...{
PostStr = eventArgument; //客户端传入
}
public string GetCallbackResult()
...{
return PostStr; // 返回客户端,由客户端函数第一个参数接收该返回值
}
}
... {
public string PostStr;
protected void Page_Load(object sender, EventArgs e)
...{
}
public void RaiseCallbackEvent(string eventArgument)
...{
PostStr = eventArgument; //客户端传入
}
public string GetCallbackResult()
...{
return PostStr; // 返回客户端,由客户端函数第一个参数接收该返回值
}
}
*
* 其次,实现接口函数
*
* 1.接受客户端触发的函数 public void RaiseCallbackEvent(string eventArgument);
* eventArgument 为客户端传入的参数
*
* 2.回传到客户端的函数 public string GetCallbackResult().
*
* 最后,要注册脚本
*
* 调用Page.ClientScript.GetCallbackEventReference(...) 获取客户端响应函数。
* 客户端代码如下
*
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default3.aspx.cs
"
Inherits
=
"
Default3
"
%>
<! 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 runat = " server " >
< title > 无标题页 </ title >
< script language = " javascript " type = " text/javascript " >
// <!CDATA[
function Button1_onclick() ... {
var message=document.getElementById("TextBox1").value;
var context='';
<%= Page.ClientScript.GetCallbackEventReference(this,"message", "CallServer","context") %>
}
function CallServer(result, context)
... {
Label1.innerText = result;
}
// ]]>
</ script >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
< asp:Label ID = " Label1 " runat = " server " Text = " Label " ></ asp:Label >
< asp:TextBox ID = " TextBox1 " runat = " server " ></ asp:TextBox >
< input id = " Button1 " type = " button " value = " button " onclick = " return Button1_onclick() " /></ 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 runat = " server " >
< title > 无标题页 </ title >
< script language = " javascript " type = " text/javascript " >
// <!CDATA[
function Button1_onclick() ... {
var message=document.getElementById("TextBox1").value;
var context='';
<%= Page.ClientScript.GetCallbackEventReference(this,"message", "CallServer","context") %>
}
function CallServer(result, context)
... {
Label1.innerText = result;
}
// ]]>
</ script >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
< asp:Label ID = " Label1 " runat = " server " Text = " Label " ></ asp:Label >
< asp:TextBox ID = " TextBox1 " runat = " server " ></ asp:TextBox >
< input id = " Button1 " type = " button " value = " button " onclick = " return Button1_onclick() " /></ div >
</ form >
</ body >
</ html >
* 后台需要一个字符串postStr 沟通两个接口函数
* 此实例用message 传递客户端参数,用postStr 传递后台返回数据,此处传递的是Textbox1的内容到服务器端,再将此值赋给postStr, 通过GetCallbackResult返回给客户端!