农国苏: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; //返回信息
}
}
<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; //返回信息
}
}
相关文章推荐
- 一起谈.NET技术,Server-push技术(comet)----------asp.net中的异步处理+client与服务器端的长连接
- Asp.net + js 异步上传文件的例子 - 使用iframe实现
- MattPowell介绍了如何在服务器端使用异步Web方法,来创建高性能的 Microsoft ASP.NET Web 服务
- asp.net 使用js分页实现异步加载数据
- Asp.Net使用异步性能就提升吗
- 在Asp.net中调用异步方法-使用信号量
- asp.net使用H5新特性实现异步上传
- 【原】用使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- 一起谈.NET技术,ASP.NET中如何正确使用Session
- 一起谈.NET技术,在ASP.NET中自动合并小图片并使用CSS Sprite显示出来
- F#与ASP.NET(2):使用F#实现基于事件的异步模式
- 使用模板技术处理ASP.NET中GridView额外序号列的问题
- [转]ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略
- JQuery FlexiGrid的asp.net完美解决方案-dotNetFlexGrid使用指南(一)Ajax异步表格
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(4):异步通讯层生成的客户端代理类、使用HTTP GET进行调用
- Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
- 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0)
- asp.net自带的异步刷新控件使用
- [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
- Asp.Net Ajax 学习笔记13 Microsoft AJAX Library中异步通信层使用