<%@ 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 type="text/javascript"> function GetDetailsContainer(id) { return document.getElementById("Detail" + id.toString()); } function ShowDetails(id) { GetDetailsContainer(id).innerHTML = "Loading…"; Callback1.PerformCallback(id); //回调方法,将调用服务器端注册的Callback方法。 //1:表示第一个div (服务器端:e.Parameter = 1) //2:表示第二个div (服务器端:e.Parameter = 2) //3:表示第三个div (服务器端:e.Parameter = 3) } /* ------------------------------------- Callback1.PerformCallback(parameter); PerformCallback方法会调用Callback1服务器端的ASPxCallback1_Callback()方法,以完成和服务器 端的通信。所以在服务器端一定要注册ASPxCallback1_Callback方法,以完成指定的操作。 同时,PerformCallback()中的参数可有可无,类型为string,当有参数时,服务器端可通过ASPxCallback1_Callback() 中的 ( CallbackEventArgs e) e.Parameter来获得,并通过e.Result参数返回结果值。 此时,就可以通过执行Client端的CallbackComplete方法来获取执行的方法。 总结: 1 向页面添加CallBack组件,并设置ClientInstanceName属性(客户端标识,如 ClientInstanceName="Callback1")。 2 注册CallBack组件的服务器端事件ASPxCallback_Callback。 3 注册CallBack组件的CallbackComplete事件,用来处理回调完之后的操作,并可通过参数e获取parameter和result的值。 4 在客户端用户CallBack组件的客户端方法PerformCallback方法,以调用服务器端的ASPxCallback_Callback事件。 代码:Callback1.PerformCallback(id) 5 CallBack组件自动调用CallbackComplete事件,完成此次操作。 */ </script> </head> <body> <form id="form1" runat="server"> <div> <div id="Detail1"> <a href="javascript:ShowDetails('1');" >Show Detail 1</a> <br /> </div> <div id="Detail2"> <a href="javascript:ShowDetails('2');">Show Detail 2</a> <br /> </div> <div id="Detail3"> <a href="javascript:ShowDetails('3');">Show Detail 3</a> <br /> </div> <dx:ASPxCallback ID="ASPxCallback1" runat="server" ClientInstanceName="Callback1" oncallback="ASPxCallback1_Callback"> <ClientSideEvents CallbackComplete="function(s, e) { var element = GetDetailsContainer(e.parameter); element.innerHTML = e.result; }" /> </dx:ASPxCallback> <!-- ------------------------------------------------- CallbackComplete 方法原型: function ASPxClientCallbackCompleteEventHandler( source : object, e : ASPxClientCallbackCompleteEventArgs ) : Void; parameter:获取AspxCallBack进行回调的参数值。 result:获取回调之后的结果值。 这个方法会在回调完成之后自动的调用。 ------------------------------------------------ --> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ASPxCallback1_Callback(object source, DevExpress.Web.CallbackEventArgs e) { //休息3秒,表示服务器在工作中 System.Threading.Thread.Sleep(3000); switch (e.Parameter) { case "1": e.Result = "WCF分布式开发步步为赢(1):WCF分布式框架基础概念"; break; case "2": e.Result = "WCF分布式开发步步为赢(2)自定义托管宿主WCF解决方案开发配置过程详解"; break; case "3": e.Result = "WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发"; break; } } }