UpdateProgress学习
代码我就补贴了。
然后我再加了一个UpdateProgress控件,把它的AssociatedUpdatePanelID指向刚加的UpdatePanel,其代码如下:
<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,代码如下:
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
</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:
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。所以里面的"更新中..."显示不出来。
再如:
<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>
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学习相关推荐
- extjs学习—-官方模版注释2
简介:这是extjs学习--官方模版注释2的详细页面,介绍了和javascript,有关的知识.技巧.经验,和一些javascript源码等.这次是一些弹出框.自己将官方的看了几遍,重写了下.其实也差 ...
- ExtJs2.0学习系列(1)--Ext.MessageBox
随笔- 71 文章- 10 评论- 1096 ExtJs2.0学习系列(1)--Ext.MessageBox 大家都知道,刚开始搞extjs的时候,很是有点困难,所以本人在新手刚入门后准备了这个 ...
- Games101 学习笔记
文章目录 第一章 第二章 线性代数 向量 单位向量: 向量相加: 笛卡尔坐标系: 向 量乘法: 点乘 叉乘 标准正交基orthonormal 矩阵 矩阵乘法 性质: 矩阵的转置: 单位矩阵和逆矩阵 用 ...
- GAMES101-现代计算机图形学学习笔记(作业07)
GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07 GAMES101-现代计算机图形学学习笔记(作业07) 作业 作业描述 思路 结果 原课程视频链接以及官网 b站视频 ...
- MFC进度条学习笔记
最近工作中有使用到进度条的知识,就来学习学习这个控件~~ 先来看看想要达到的效果: 好的,现在开始正题. 我们这里的进度条,在程序里面叫做CProgressCtrl,它是继承自CWnd类的基础控件类, ...
- QT学习笔记(摘抄)
QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...
- ExtJS快速入门学习指南
前言:个人理解ExtJS其实 是一个Ajax 框架,是一个用javascript 写的.与EasyUI差不多的一个框架.学习并不难,先找好一定的学习资料与文档,然后再练习几个demo,这样大概就有所了 ...
- java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
最新文章
- 中国科学家Cell重要评述文章: 宏基因组学成为病毒分类新方法
- 安装完python怎么打开安装步骤-Python安装与运行测试详细教程,带你攻克第一个学习难关...
- python制作工资计算器-用python写一个北京市的个税计算器
- myeclipse 8.5 常用快捷键
- HTML DOM Event对象
- boost::king_ordering用法的测试程序
- android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
- CF 1529E. Trees of Tranquillity
- LeetCode 734. 句子相似性(哈希)
- C++总结篇(3)String类
- 【刷题】BZOJ 3653 谈笑风生
- ModuleNotFoundError: No module named ‘distutils.util‘
- OpenLDAP(2.4.3x)服务器搭建及配置说明
- python工程代码语法_python编码环境安装与基本语法
- java classpath的配置_java的classpath怎么配置
- SQL Sever的安装教程
- 中科大开源数据集CCPD 2019详细介绍
- photoshop实现图片更换背景
- Python数据分析:数据可视化案例
- select *和select 字段名