§ ITPOW >> 文档 >> ASP.NET >> AJAX

UpdateProgress

作者:vkvi 来源:ITPOW(原创) 日期:2007-8-23

Ajax 异步回送没有页面闪烁,但这也是缺点,如果服务器端执行时间过长,客户端却得不到任何提示,用户可能会认为没有任何事情发生,所以在页面处理期间,给用户提示表示正在处理是一种友好的表现。

而本节就是利用 UpdateProgress 来实现的。

示例

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                Loading...
            </ProgressTemplate>
        </asp:UpdateProgress>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</form>

 

protected void Button1_Click(object sender, EventArgs e)
{
    DateTime now = DateTime.Now;
    Label1.Text = now.ToString();
    System.Threading.Thread.Sleep(3000);
}
  • 我们单击按钮时,将显示 Loading...。
  • 在 Button1_Click 方法中,System.Threading.Thread.Sleep(3000); 表示延迟 3 秒钟,这种延时在 ASP 中是没有的。
  • 3 秒钟过后,Loading... 自动消失。

我们也可以用图片来代替 Loading... 显示得美观些,大多数情况下,我们不需要亲手制作这样一个图片,Ajaxload 这个网站专门用来在线生成这类图标。

UpdateProgress 常用属性

AssociatedUpdatePanelID 该 UpdateProgress 与哪一个 UpdatePanel 关联,默认与页面上所有的 UpdatePanel 关联,即任何一个 UpdatePanel 的异步回送都将触发 UpdateProgress 显示。

DisplayAfter 在事件触发多少毫秒后开始显示 UpdateProgress,默认值:500。

DynamicLayout 在 UpdateProgress 没有显示时,是否移除 UpdateProgress 在页面上占有的空间,可选值:true(默认值)、false。

相关阅读

相关文章