2

在我们的 ASP.NET 3.5 应用程序中,我们希望实现“请稍候..”功能:在每个用户操作(按钮单击、选项卡更改等)上,我们将在页面顶部显示一个小微调器(实际上在我们已经使用了一个单独的框架)。

我们想到了这个解决方案:

  1. “劫持”_doPostBack拦截每个事件,显示微调器图像,然后执行原始_doPostBack功能
  2. 在 ASP.NET 代码隐藏中注册一个客户端脚本块以在处理结束时隐藏图像

我的问题是:您认为这是一个好的解决方案吗?它当然不是很优雅,但似乎很有效。是否有另一种解决方案/模式来做这种事情?

PS:我们不使用 JQuery,我们使用UpdatePanels

4

2 回答 2

2

由于您已经在使用 UpdatePanel,您只需向页面添加一个UpdateProgress控件并将其关联到您的 UpdatePanel。

这将在从 UpdatePanel 内部启动部分回发时自动显示,并在请求完成后隐藏。

下面是一个示例,只需将 img 标签指向一个微调器图像。您可以将控件放置在您希望它出现的位置。

<asp:UpdateProgress runat="server" AssociatedUpdatePanelID="updatePanel1">
  <ProgressTemplate>
    <img src="./images/somespinner.gif" />Please wait...
  </ProgressTemplate>
</asp:UpdateProgress>
于 2009-05-29T12:03:00.750 回答
-1

我确定您可以将进度指示器附加到 UpdatePanel。无论是通过事件处理程序还是通过属性,我都不记得是哪个,已经有一段时间了,我使用的是 jQuery 而不是 UpdatePanels。

富有的

于 2009-05-29T08:42:21.687 回答