更新进度和加载栏



我在此链接中使用本教程 http://www.aspdotnet-suresh.com/2010/10/how-to-show-progressbar-during.html 制作"进度条",它运行良好,但我在页面中还有另一个 UpdatePanel,每次我单击此 UpdatePanel 中的按钮时,都会显示"进度条"。

我不希望进度条与页面中的每个更新面板一起显示。我写了AssociatedUpdatePanelID="pnlData"但仍然没有作品。我怎样才能做到这一点?

另一个问题:如果我在 UpdatePanel 中有 2 个与 UpdateProgress 关联的按钮,并且我只希望其中一个按钮显示进度条而不是两个,这可能吗?

每次单击按钮和每个更新面板都显示进度条的原因是处理程序绑定到页面的请求事件:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

因此,每次 AJAX 往返服务器时,进度条首先显示,然后隐藏。

要更改此行为,我建议找出请求的发起者。我认为它将在BeginRequestHandlersenderargs参数中的某个地方可用.使用 F12 开发人员工具调试对象。然后只需在popup.show();中添加一个额外的条件。可以使用此方法(或类似方法)筛选出应触发进度栏的按钮和更新面板。

通常的方法是仅为长时间运行的操作显示进度条。因此,您将在BeginRequest事件期间将popup.show();包装在setTimeout中,如果EndRequest发生得更早,则指定的超时,您将使用 clearTimeout 重置超时。

U 提到你已经使用了 AssociatedUpdatePanelID="pnlData"。但是,您是否设置了更新模式="条件"。喜欢这个:-

<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">

最新更新