2

这可能是一个简单的问题,但是如何在构建页面时最好地使用 ASP.NET 中的 AJAX 加载器来提供加载对话框?

我目前有一个带有关联 UpdateProgressPanel 的 UpdatePanel,其中包含 ProgressTemplate 中的加载消息和 gif。

目前我有一个页面,onLoad() 去获取业务实体,然后显示它们。在执行此操作时,我想显示一个 AJAX 加载程序。

在页面加载中没有任何内容并有一个触发 onLoadComplete 或 unLoad() 的隐藏按钮会更好吗?然后等待按钮单击方法完成显示 UpdateProgressPanel?

4

4 回答 4

8

您可以在 .Net 之外的 HTML 中执行此操作。在您的 ASPX 页面中,您有如下代码:

<div id="loading"> 
<!-- 动画 GIF 或其他指示正在发生的事情 -->
</div>

在页面的最底部,就在前面,您可以有一个如下所示的代码段:

<script language="javascript"> 
document.getElementById("loading").style.display = "none";
</脚本>

图形——只要它位于页面顶部——将首先呈现。然后你所有的 onLoad 东西都会发生,最后内联 JavaScript 会发生在最后,因为它位于页面底部。

很多时候,我会禁用处于未加载状态的按钮并在底部的 JavaScript 中启用它们。这可以防止用户在页面准备好之前获得点击快乐并触发事件。

于 2008-10-28T18:52:02.690 回答
0

我用 Timer 控件做了类似的事情。您的 OnLoad 只是打开计时器,页面完成渲染。然后计时器(具有一些最小的间隔值)会做脏活,正确显示进度面板。请记住关闭计时器作为该过程的最后一步。

于 2008-10-29T15:42:03.557 回答
0

如果你真的想要细粒度的控制,你可以使用基于进度条的 AJAX 预加载器。您可以将其配置为在每次状态更改时完成。即从 0 到 4(5 个就绪状态),每个状态进展 20%。创建一个非常简单。有一个容器div可以容纳另一个容器,每个容器divwidth每个状态都以 20% 的步长从 0 到 100% 变化。向内部添加背景颜色div(例如:蓝色),使其看起来像在进步。我猜 GMail 的 Pre-loader 使用了类似的方法。

于 2010-05-23T11:19:46.320 回答
0

帖子很旧,但您可以查看http://ajax.net-tutorials.com/controls/updateprogress-control/

于 2012-01-16T12:35:14.727 回答