如何为某些页面禁用UpdateProgress(在母版页上)?

时间:2014-11-06 20:20:45

标签: javascript c# asp.net updatepanel updateprogress

我在Master Page上有这段代码:

<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
    }
}

我希望在此页面上updateprogress不起作用,并且应该适用于所有异步事件的所有页面。 我可以强加一个条件:

if(pageName=="abc.aspx"){
   //dont show progressbar
}

或其他任何替代方案?

1 个答案:

答案 0 :(得分:0)

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

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

然后在您的内容页面加载事件中,将UpdateProgress关联到虚拟更新面板,如下所示:

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