您的位置:首页 > 编程语言 > ASP

农国苏:asp.net在Client端使用另一种异步技术CallBack (完善中……)

2008-07-03 15:10 465 查看
第一步(在页面上创建“输入”和“输出”区域):myPage.aspx

<form id="form1" runat="server">

<div>

输入姓名:<input id="txtUserName" type="text" />

输出信息:<span id="Results" ></span>

</div>

</form>

第二步(分别创建两个javascript方法通过DOM控制“输入”和“输出”):myPage.aspx

<script type="text/JavaScript">

function DoSearch()

{

var txtFirstName = document.getElementById("txtUserName");

CallServer(txtFirstName.value, "");

}

function ReceiveServerData(txtUserInfo)

{

Results.innerText = txtUserInfo;

}

setInterval('DoSearch()',1000);

</script>

第三步(在后台注册CallServer和ReceiveServerData):myPage.aspx.cs

protected void Page_Load(object sender, EventArgs e)

{

String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");

String callbackScript;

callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + "} ;";

//注册JavaScript

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);

}

第四步(后台继承ICallbackEventHandler并实现RaiseCallbackEvent()和GetCallbackResult())

//引发Callback事件处理

public partial class myPage : System.Web.UI.Page,ICallbackEventHandler

{

protected string txtUserInfo;//信息

public void RaiseCallbackEvent(string txtFirstName)

{

txtUserInfo="信息";

}

//返回Callback结果

public string GetCallbackResult()

{

return txtUserInfo; //返回信息

}

}

前台myPage.aspx完整代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page.aspx.cs" Inherits="myPage" %>

<!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>Page</title>

<script type="text/JavaScript">

function DoSearch()

{

var txtFirstName = document.getElementById("txtUserName");

CallServer(txtFirstName.value, "");

}

function ReceiveServerData(txtUserInfo)

{

Results.innerText = txtUserInfo;

}

setInterval('DoSearch()',1000);

</script>

</head>

<body>

<form id="form1" runat="server">

<div>

输入姓名:<input id="txtUserName" type="text" />

输出信息:<span id="Results" ></span>

</div>

</form>

</body>

</html>

后台myPage.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;

using System.Data.SqlClient;

public partial class myPage : System.Web.UI.Page,ICallbackEventHandler

{

protected string txtUserInfo;//信息

protected void Page_Load(object sender, EventArgs e)

{

String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");

String callbackScript;

callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + "} ;";

//注册JavaScript

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);

}

public void RaiseCallbackEvent(string txtFirstName)

{

txtUserInfo="信息";

}

//返回Callback结果

public string GetCallbackResult()

{

return txtUserInfo; //返回信息

}

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