• PRM–initializeRequest事件


    PRM–initializeRequest事件
    •参数类型:InitializeRequestEventArgs
    –request属性:用于获得WebRequest对象(用于请求的信息)
    –postBackElement:触发异步刷新的DOM元素
    •常用操作:
    –读取请求信息
    –取消此次异步更新

    优先级高的异步刷新
    aspx
    <%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="1_PrecedencePostBack.aspx.cs" Inherits="_1_PrecedencePostBack" Title="PrecedencePostBack" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" DynamicLayout="false">
        
    <ProgressTemplate>
            
    <span style="color:Red">Loading</span>
        
    </ProgressTemplate>
    </asp:UpdateProgress>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        
    <ContentTemplate>
            
    <%= DateTime.Now %><br />
            
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
            
    <asp:Button ID="btnPrecedence" runat="server" Text="优先" OnClick="Button_OnClick" />
            
    <asp:Button ID="Button2" runat="server" Text="普通" OnClick="Button_OnClick" />
        
    </ContentTemplate>
    </asp:UpdatePanel>

    <script type="text/javascript" language="javascript">
        var lastPostBackButtonId 
    = null;
        var btnPrecedenceId 
    = "<%= this.btnPrecedence.ClientID %>";
        
        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(
            function(sender, e)
            {
                var prm 
    = Sys.WebForms.PageRequestManager.getInstance();
                
    if (prm.get_isInAsyncPostBack())
                {
                    
    if (lastPostBackButtonId == btnPrecedenceId)
                    {
                        e.set_cancel(
    true);
                        
                        
    if (e.get_postBackElement().id == btnPrecedenceId)
                        {
                            showMessage(
    "不可重复发起优先的刷新。");
                        }
                        
    else
                        {
                            showMessage(
    "请等待优先的刷新结束。");
                        }
                        
                        
    return;
                    }
                    
    else if (e.get_postBackElement().id == btnPrecedenceId)
                    {
                        showMessage(
    "发起优先的刷新,普通的刷新将被取消。");
                    }
                    
    else
                    {
                        showMessage(
    "重新发起普通的刷新,前一次提交将被取消。");
                    }
                }
                
                lastPostBackButtonId 
    = e.get_postBackElement().id;
            });
    </script>

    </asp:Content>

    cs
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        
    protected void Button_OnClick(object sender, EventArgs e)
        {
            Thread.Sleep(
    3000);

            Button button 
    = sender as Button;
            
    this.Label1.Text = String.Format("您点击了“{0}”按钮", button.Text);
        }

    使用Thread.Sleep(3000);需要导入命名空间System.Threading;
  • 相关阅读:
    form表单重置、清空方法记录
    window location assign的使用
    简单易用的拾色器推荐
    display属性常用的四个值:block、inline、inline-block、none
    idea如何配置外部电脑访问本地项目
    Unity 2D相机公式换算(从其他博客上抄的)
    关于游戏逻辑模式的观点----谁调用谁
    Unity 角色场景传送功能
    Unity关于方法事件生命周期官方文档
    关于Unity物理事件的执行顺序的最新理解
  • 原文地址:https://www.cnblogs.com/timy/p/1169826.html
Copyright © 2020-2023  润新知