因此,我们有一个 ASP.Net 应用程序 - 相当标准 - 并且有很多更新面板和回发。
在某些页面上我们有
<ajax:UpdatePanelAnimationExtender ID="ae" runat="server" TargetControlID="updatePanel" BehaviorID="UpdateAnimation">
<Animations>
<OnUpdating>
<FadeOut Duration="0.1" minimumOpacity=".3" />
</OnUpdating>
<OnUpdated>
<FadeIn minimumOpacity=".5" Duration="0" />
</OnUpdated>
</Animations>
</ajax:UpdatePanelAnimationExtender>
当回发正在进行时,这基本上会使页面变白(但这与模式对话框的灰色背景发生冲突)。在某些情况下,我们有一个进度更新控件,它在页面中间有一个旋转图标。
但它们看起来都不是特别好,而且都有点笨重。 他们还需要在应用程序的各个地方编写大量代码。
其他人使用过哪些方法并认为有效?
我没有使用 UpdatePanelAnimationExtender,而是将 UpdateProgress-Control 与动画 gif 结合使用(Bermos Link):
<asp:UpdateProgress ID="UpdateProgress1" DynamicLayout="true" runat="server" AssociatedUpdatePanelID="UdpImeiLookup" DisplayAfter="500" >
<ProgressTemplate>
<div class="progress">
<img src="images/ajax-loader-arrows.gif" /> please wait...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
ProgressTemplate 将在关联更新面板的每次回发中可见(本例中为 500 毫秒后)。
班级“进步”可以是f.e.这个:
.progress
{
text-align:center;
vertical-align:middle;
position: absolute;
left: 44%;
top: 35%;
border-style:outset;
border-color:silver;
background-color:Silver;
white-space:nowrap;
padding:5px;
}
与其他人一样,我建议在模式弹出窗口中使用 UpdateProgress。
我将添加这个改动,将弹出窗口、UpdateProgress 和此代码放入母版页中,因此无论何时您需要它,只需将母版页插入内容页面即可。
<script type="text/javascript">
var ModalProgress ='<%= ModalProgress.ClientID %>';
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginReq);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endReq);
function beginReq(sender, args){
// shows the Popup
$find(ModalProgress).show();
}
function endReq(sender, args)
{
// hide the Popup
$find(ModalProgress).hide();
}
</script>
这里有一些参考:
http://mattberseth.com/blog/2007/07/modalpopup_as_an_ajax_progress.html
http://vincexu.blogspot.com/2008/10/how-to-make-modalupdate-progress-bar-on.html
动画 gif 需要最少的代码,您可以从以下站点选择您最喜欢的颜色和颜色 - Ajaxload - Ajax 加载 gif 生成器。
这就是我使用的,它有一个模态弹出类型背景和一个 gif
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0">
<ProgressTemplate>
<div style="position: absolute; width: 100%; height: 100%; z-index: 100; background-color: Gray;
filter: alpha(opacity=70); opacity: 0.7;">
</div>
<table style="position: absolute; width: 100%; height: 100%; z-index: 101;">
<tr>
<td align="center" valign="middle">
<div style="color: Black; font-weight: bolder; background-color: White; padding: 15px;
width: 200px;">
<asp:Image ID="Image3" runat="server" ImageUrl="~/Images/progress.gif" />
Please wait....
</div>
</td>
</tr>
</table>
</ProgressTemplate>