您的位置:首页 > 其它

使用ICallbackEventHandler 实现异步调用

2010-05-10 17:37 477 查看
前台页面内容:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>

<script language="javascript" type="text/javascript">
function callServer()
{
var context=document.getElementById("txtMessage").value;
dos(context);
}

//处理返回的数据
function ReceiveServerData(text)
{
document.getElementById("txtResult").value=text;;
alert(text);
}

</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txtMessage" />
<input type="button" onclick="callServer();" value="callServer" />
Result: <input type="text" id="txtResult" />
</div>
</form>
</body>
</html>

后台的代码:

public partial class YTest : System.Web.UI.Page,ICallbackEventHandler
{
private string result;

protected void Page_Load(object sender, EventArgs e)
{
//if (!Page.IsPostBack)
//{
// string cbReference = Page.ClientScript.GetCallbackEventReference(this, "context", "ReceiveServerData", ""); //获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。
// string callbackScript = "function dos(context){" + cbReference + ";}"; //注册客户端方法
// Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dos", callbackScript, true); //向客户端写入脚本块

//}

}

下面是继承实现ICallbackEventHandler的两个方法:

/// <summary>
/// 处理回调事件。
/// </summary>
/// <param name="text"></param>
public void RaiseCallbackEvent(string context)
{
result = "客户端在[" + DateTime.Now.ToString() + "]传送来了" + context;
}

/// <summary>
/// 返回回调事件的结果。
/// </summary>
/// <returns></returns>
public string GetCallbackResult()
{
return result;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: