如何禁用某些页面的UpdateProgress(在主页面上)
本文关键字:主页 UpdateProgress 何禁用 | 更新日期: 2023-09-27 18:29:23
我在主页上有这样的代码:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateProgress ID="updateProgress" runat="server">
<ProgressTemplate>
<div id="aspProgressDiv" style="position: fixed; text-align: center; height: 100%; width: 100%; top: 0;
right: 0; left: 0; z-index: 9999999; background-color: #000000; opacity: 0.7;">
<asp:Image ID="imgUpdateProgress" runat="server" ImageUrl="Images/ajax-loader.gif"
AlternateText="Loading ..." ToolTip="Loading ..." Style="padding: 10px; position: fixed;
top: 45%; left: 50%;" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
在其中一个页面上,我有一个计时器,它会自动触发事件并刷新页面。
<asp:UpdatePanel ID="updatePage" runat="server" >
<ContentTemplate>
<asp:Timer ID="timerRefresh" runat="server" OnTick="timerRefresh_Tick" Enabled="true" Interval="10000"></asp:Timer>
<asp:CheckBox runat="server" ID="chkAutoRefresh" OnCheckedChanged="chkAutoRefresh_CheckedChanged" CssClass="pull-right text-primary" AutoPostBack="true" Text="Auto refresh" Checked="True" />
</ContentTemplate>
</asp:UpdatePanel>
在C#中,我有:
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
timerRefresh_Tick(null, null);
}
}
catch (Exception exception)
{
}
}
protected void chkAutoRefresh_CheckedChanged(object sender, EventArgs e)
{
try
{
timerRefresh.Enabled = chkAutoRefresh.Checked;
}
catch (Exception exception)
{
}
}
protected void timerRefresh_Tick(object sender, EventArgs e)
{
try
{
//post data to page
}
catch (Exception exception)
{
//Do something
}
}
我希望在这个页面上更新进度不应该工作,应该在所有异步事件的所有页面上工作。我能强加一个条件吗:
if(pageName=="abc.aspx"){
//dont show progressbar
}
或者其他选择?
您可以尝试在主页中添加一个虚拟更新面板,如下所示:
<asp:UpdatePanel runat="server" ID="upDummy"></asp:UpdatePanel>
然后,在内容页面加载事件中,将UpdateProgress
与伪更新面板关联,如下所示:
CType(Me.Master.FindControl("UpdateProgress1"), UpdateProgress).AssociatedUpdatePanelID =
CType(Me.Master.FindControl("upDummy"), UpdatePanel).ID