* 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; // 返回客户端,由客户端函数第一个参数接收该返回值
}
}
*
* 其次,实现接口函数
*
* 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>
* 后台需要一个字符串postStr 沟通两个接口函数
* 此实例用message 传递客户端参数,用postStr 传递后台返回数据,此处传递的是Textbox1的内容到服务器端,再将此值赋给postStr, 通过GetCallbackResult返回给客户端!
本文介绍ASP.NET 2.0中脚本回调技术的应用,包括实现System.Web.UI.ICallbackEventHandler接口的方法,客户端与服务器端交互的具体步骤及示例代码。
650

被折叠的 条评论
为什么被折叠?



