当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  利用ICallbackEventHandle实现类似AJAX的无刷新页面

 利用ICallbackEventHandle实现类似AJAX的无刷新页面

点击次数:20 次 发布日期:2008-11-26 11:42:08 作者:源代码网
源代码网推荐      先看MSDN Library 2005上的这个例子!
源代码网推荐  ------ ClientCallback.aspx ------
源代码网推荐  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ClientCallback.aspx.cs" ­ Inherits="ClientCallback" %>
源代码网推荐  
源代码网推荐  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/­ xhtml11.dtd">
源代码网推荐  
源代码网推荐  <html xmlns="http://www.w3.org/1999/xhtm­ l" >
源代码网推荐   <head id="Head1" runat="server">
源代码网推荐   <title>Callback Test</title>
源代码网推荐   <script type="text/javascript">
源代码网推荐   function ReceiveServerData(receivedStr, context)
源代码网推荐   {
源代码网推荐   alert(receivedStr);
源代码网推荐   }
源代码网推荐   </script>
源代码网推荐   </head>
源代码网推荐   <body>
源代码网推荐   <form id="form1" runat="server">
源代码网推荐   <input type="button" value="Callback" onclick="CallServer("argument", "context")"/><br />
源代码网推荐   </form>
源代码网推荐   </body>
源代码网推荐  </html>-------- ClientCallbacp.aspx.cs -----------
源代码网推荐  // ClientCallback.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;
源代码网推荐  
源代码网推荐  public partial class ClientCallback : System.Web.UI.Page, System.Web.UI.ICallbackEventHandle­ r
源代码网推荐  {
源代码网推荐  
源代码网推荐   void Page_Load(object sender, EventArgs e)
源代码网推荐   {
源代码网推荐   ClientScriptManager cm = Page.ClientScript;
源代码网推荐   String cbReference = cm.GetCallbackEventReference(this,­ "arg", "ReceiveServerData", "");
源代码网推荐   String callbackScript = "function CallServer(arg, context) {" + cbReference + "; }";
源代码网推荐   cm.RegisterClientScriptBlock(this.­ GetType(), "CallServer", callbackScript, true);
源代码网推荐   }
源代码网推荐  
源代码网推荐   private string returnStr;
源代码网推荐   //function called by client, executed on server
源代码网推荐   public void RaiseCallbackEvent(String eventArgument)
源代码网推荐   {
源代码网推荐   //do something with return argument
源代码网推荐   returnStr = eventArgument.ToUpper();
源代码网推荐   return;
源代码网推荐   }
源代码网推荐  
源代码网推荐   //function that sends result?
源代码网推荐   public string GetCallbackResult()
源代码网推荐   {
源代码网推荐   return returnStr;
源代码网推荐   }
源代码网推荐  }
源代码网推荐  客户端用ReceiveServerData接收服务器返回的数据,
源代码网推荐  <script type="text/javascript">
源代码网推荐   function ReceiveServerData(receivedStr, context)
源代码网推荐   {
源代码网推荐   alert(receivedStr);
源代码网推荐   }
源代码网推荐   </script>
源代码网推荐  
源代码网推荐  使用CallServer("argument", "context")传递数据到服务器。
源代码网推荐  
源代码网推荐  客户端ok了,接下来是服务器端,
源代码网推荐  实现ICallbackEventHandle­ 接口,
源代码网推荐  private string returnStr;
源代码网推荐   public void RaiseCallbackEvent(String eventArgument)
源代码网推荐   {
源代码网推荐   returnStr = eventArgument.ToUpper();
源代码网推荐   return;
源代码网推荐   }
源代码网推荐  
源代码网推荐  public string GetCallbackResult()
源代码网推荐   {
源代码网推荐   return returnStr;
源代码网推荐   }
源代码网推荐  
源代码网推荐  最后,将客户端方法和服务器端的方法关联起来,在Page_Load中实现,
源代码网推荐  ClientScriptManager cm = Page.ClientScript;
源代码网推荐   String cbReference = cm.GetCallbackEventReference(this,­ "arg", "ReceiveServerData", "");
源代码网推荐  String callbackScript = "function CallServer(arg, context) {" + cbReference + "; }";
源代码网推荐   cm.RegisterClientScriptBlock(this.­ GetType(), "CallServer", callbackScript, true);
源代码网推荐  
源代码网推荐  大功告成!
源代码网推荐  
源代码网推荐  这种方法也能达到类似Ajax的无刷新页面,而且实现起来十分简单。
源代码网推荐  
源代码网推荐  http://pyw0818.cnblogs.com/archive/2006/05/30/413416.html
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华