在updatePanel里面放了一个Button和Label,然后点击Button给Label赋值。这个是个很简单的过程了。
代码我就补贴了。
然后我再加了一个UpdateProgress控件,把它的AssociatedUpdatePanelID指向刚加的UpdatePanel,其代码如下:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
            <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
            <ProgressTemplate >
             <p>
                 更新中......
             </p>
            </ProgressTemplate>
            </asp:UpdateProgress>
            </ContentTemplate>
        </asp:UpdatePanel>
Button事件:
protected void Button1_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
        Label1.Text = DateTime.Now.ToString();
    }

运行结果正常,点击Button,“更新中...”出现,然后Label被赋值。

然后我把updateProgress拿到updatePanel控件外面来,运行,正常。
然后我再把button控件拿到updatePannel控件外面来,然后又在updatepanel里面加上triggers,代码如下:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
                &nbsp;&nbsp;&nbsp; &nbsp;
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" Width="201px" />
            <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
            <ProgressTemplate >
             <p>
                 更新中......
             </p>
            </ProgressTemplate>
            </asp:UpdateProgress>

运行,点击Button按钮,发现"更新中..."字段没有出现,但是赋值正常。
难道使用triggers的调用外部控件来进行异步传输,不会引发UpdateProgress?

后来在网上找到了解决方法:
在代码里面加入如下js:

<script language="javascript" type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    prm.add_endRequest(EndRequest);
    var postBackElement;
    function InitializeRequest(sender, args) 
    {
        if (prm.get_isInAsyncPostBack()) 
        {
            args.set_cancel(true);
        }
        
        postBackElement = args.get_postBackElement();

        if (postBackElement.id = 'Button1') {

            $get('UpdateProgress1').style.display = 'block';                

        }
    }
    function EndRequest(sender, args) 
    {
        if (postBackElement.id = 'Button1') 
        {
             $get('UpdateProgress1').style.display = 'none';
        }

}
    </script>
 

然后运行正常,从上面的js可以看出,如果是triggers触发的button事件,那么progress控件的style.display始终都是none,在button_click事件触发时,并没有使progress的 style.display变成block。所以里面的"更新中..."显示不出来。

再如:

    <div id="divUpdateProgress" style="position: absolute; right: 466px; top: 48px; height: 20px;">
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                <div style="font-size: 12px; color: Blue; background-color: #FFFFD6; border: solid 1px blue;">
                    <img src="../Image/ajaxloader.gif" />
                    数据加载中,请稍候
                </div>
            </ProgressTemplate>
        </asp:UpdateProgress>
    </div>
    <script language="javascript" type="text/javascript">
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
        var postBackElement;
        function InitializeRequest(sender, args) 
        {
            if (prm.get_isInAsyncPostBack()) 
            {
                args.set_cancel(true);
            }
            
            postBackElement = args.get_postBackElement();
           
            if (postBackElement.id == '<%=btnSearch.ClientID %>' || postBackElement.id == '<%=btnSearchOnProj.ClientID %>') 
            {
                $get('divUpdateProgress').style.display = 'block';
            }
        }
        function EndRequest(sender, args) 
        {
            if (postBackElement.id == '<%=btnSearch.ClientID %>' || postBackElement.id == '<%=btnSearchOnProj.ClientID %>') 
            {
                 $get('divUpdateProgress').style.display = 'none';
            }

        }
    </script>

UpdateProgress学习相关推荐

  1. extjs学习—-官方模版注释2

    简介:这是extjs学习--官方模版注释2的详细页面,介绍了和javascript,有关的知识.技巧.经验,和一些javascript源码等.这次是一些弹出框.自己将官方的看了几遍,重写了下.其实也差 ...

  2. ExtJs2.0学习系列(1)--Ext.MessageBox

    随笔- 71  文章- 10  评论- 1096  ExtJs2.0学习系列(1)--Ext.MessageBox 大家都知道,刚开始搞extjs的时候,很是有点困难,所以本人在新手刚入门后准备了这个 ...

  3. Games101 学习笔记

    文章目录 第一章 第二章 线性代数 向量 单位向量: 向量相加: 笛卡尔坐标系: 向 量乘法: 点乘 叉乘 标准正交基orthonormal 矩阵 矩阵乘法 性质: 矩阵的转置: 单位矩阵和逆矩阵 用 ...

  4. GAMES101-现代计算机图形学学习笔记(作业07)

    GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07 GAMES101-现代计算机图形学学习笔记(作业07) 作业 作业描述 思路 结果 原课程视频链接以及官网 b站视频 ...

  5. MFC进度条学习笔记

    最近工作中有使用到进度条的知识,就来学习学习这个控件~~ 先来看看想要达到的效果: 好的,现在开始正题. 我们这里的进度条,在程序里面叫做CProgressCtrl,它是继承自CWnd类的基础控件类, ...

  6. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  7. ExtJS快速入门学习指南

    前言:个人理解ExtJS其实 是一个Ajax 框架,是一个用javascript 写的.与EasyUI差不多的一个框架.学习并不难,先找好一定的学习资料与文档,然后再练习几个demo,这样大概就有所了 ...

  8. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  9. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

最新文章

  1. 中国科学家Cell重要评述文章: 宏基因组学成为病毒分类新方法
  2. 安装完python怎么打开安装步骤-Python安装与运行测试详细教程,带你攻克第一个学习难关...
  3. python制作工资计算器-用python写一个北京市的个税计算器
  4. myeclipse 8.5 常用快捷键
  5. HTML DOM Event对象
  6. boost::king_ordering用法的测试程序
  7. android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
  8. CF 1529E. Trees of Tranquillity
  9. LeetCode 734. 句子相似性(哈希)
  10. C++总结篇(3)String类
  11. 【刷题】BZOJ 3653 谈笑风生
  12. ModuleNotFoundError: No module named ‘distutils.util‘
  13. OpenLDAP(2.4.3x)服务器搭建及配置说明
  14. python工程代码语法_python编码环境安装与基本语法
  15. java classpath的配置_java的classpath怎么配置
  16. SQL Sever的安装教程
  17. 中科大开源数据集CCPD 2019详细介绍
  18. photoshop实现图片更换背景
  19. Python数据分析:数据可视化案例
  20. select *和select 字段名

热门文章

  1. 禁用任何未使用的端口com_分享连接思科路由器控制台端口的正确设置
  2. NGUI从入门到实战(大学霸内部资料)
  3. java redis多主多备_java 集成Redis 一主多从
  4. python中哪里用到缩进_Python编程常见十大错误
  5. 解决arXiv上传LaTeXpaper的坑
  6. 马斯克近日表示:Neuralink脑机接口有望明年用于人类
  7. 智能假手与机器人融合可以灵活抓取物品
  8. 商汤IPO首日市值涨百亿,徐立感慨时代之幸:有机会改变世界!
  9. 微软AI要参加IMO竞赛!小目标:数学金牌
  10. 十年磨一剑!阿里OceanBase创纪录卫冕,中国数据库从此告别卡脖子