ASP.Net的最佳“加载”反馈?

时间:2010-04-30 10:51:21

标签: asp.net ajax updatepanel progress

所以,我们有一个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>

当回发正在进行时,这基本上是白色的(但这与模态对话框灰色背景冲突)。在某些情况下,我们有一个progressupdate控件,在页面中间只有一个spinny图标。

但是它们中没有一个看起来特别好看而且有点笨重。它们还需要在应用程序周围的各个地方提供大量代码。

其他人使用哪些方法并发现有效?

4 个答案:

答案 0 :(得分:4)

我没有使用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" />&nbsp;please wait...
            </div>
            </ProgressTemplate>
</asp:UpdateProgress>

ProgressTemplate将在关联的更新面板的每个回发中显示(在此示例中为500ms之后)。

编辑:课程“进展”可以是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;
}

此致 添

答案 1 :(得分:1)

GIF动画需要的代码量最少,您可以从以下网站选择您喜欢的颜色 - Ajaxload - Ajax loading gif generator

答案 2 :(得分:1)

与其他人一样,我建议在模式弹出窗口中使用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

答案 3 :(得分:0)

这是我使用的,它有一个模态弹出窗口类型背景和一个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;">
    &nbsp;
  </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>