如何禁用某些页面的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
}

或者其他选择?

如何禁用某些页面的UpdateProgress(在主页面上)

您可以尝试在主页中添加一个虚拟更新面板,如下所示:

<asp:UpdatePanel runat="server" ID="upDummy"></asp:UpdatePanel>

然后,在内容页面加载事件中,将UpdateProgress与伪更新面板关联,如下所示:

CType(Me.Master.FindControl("UpdateProgress1"), UpdateProgress).AssociatedUpdatePanelID =
    CType(Me.Master.FindControl("upDummy"), UpdatePanel).ID