我在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
}
或其他任何替代方案?
答案 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