2015-04-18 50 views
0

我用这个教程在这个环节http://www.aspdotnet-suresh.com/2010/10/how-to-show-progressbar-during.html,使“进度条”,它工作得很好,但我有另外的UpdatePanel的页面,每次我在这个UpdatePanel中,在“进步点击一个按钮栏“显示。的UpdateProgress和加载酒吧

我不想被在页面每次的UpdatePanel显示进度条。我写了AssociatedUpdatePanelID="pnlData"但仍然无法正常工作。我怎样才能做到这一点?

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

回答

0

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

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
每AJAX往返到服务器的进度

所以酒吧首先显示然后隐藏。

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

通常的做法是仅为长时间运行的操作显示进度条。所以,你会在BeginRequest活动期间包装在setTimeoutpopup.show();如果EndRequest是较早出现,然后指定超时你使用clearTimeout复位超时。

0

Ü提到u必须使用AssociatedUpdatePanelID = “pnlData”。但是,你有没有设置UpdateMode =“有条件的”。像这样: -

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

+0

是的我把它设置为“有条件的” – user1947393