• ASPxCallback组件(珍藏版)


    <%@ 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;
            }
    
        }
    }
  • 相关阅读:
    tbody的有趣问题
    如何去掉a标签的虚框
    在ubuntu下安装ruby on rails环境
    odoo 新建模块命令
    安装sentry的几个命令,日志监控系统
    腾讯云docker加速
    odoo技术笔记
    零基础实现摄像头的全平台直播 (一)内网直播的实现
    EasyNVR、EasyDSS二次开发RTMP、HLS流在web页面进行无插件播放(demo)
    EasyDSS流媒体服务器和EasyDSS云平台异同
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/10282777.html
Copyright © 2020-2023  润新知