从内容页面禁用“更新”面板

时间:2011-09-09 13:40:40

标签: asp.net asp.net-ajax

您好我在母版页上有一个ToolkitScriptManager和更新面板。我想在内容页面上禁用更新面板功能,但它应该适用于其他页面。

Master Page Code:
<ajax:ToolkitScriptManager runat="server" ID="sm1" EnableScriptGlobalization="true"
    EnableScriptLocalization="true" ScriptMode="Release" CompositeScript-  
ScriptMode="Release" />
<asp:UpdatePanel ID="udpEmail" runat="server">
<ContentTemplate>
<asp:ContentPlaceHolder ID="cphMain" runat="server">
</asp:ContentPlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>

Content Page Code:(e.g. Page1.aspx)
<asp:Content ID="Content3" ContentPlaceHolderID="cphMain" runat="Server">
Code Here
</asp:Content>

所以现在我想要更新面板功能不应该在Page1.aspx上工作,但它应该在同一母版页的其他内容页面上工作。请帮忙

4 个答案:

答案 0 :(得分:0)

如何检查页面名称并将cphMain的可见性设置为false? http://forums.asp.net/t/1163743.aspx

你有没有探索过Razor + MVC?

答案 1 :(得分:0)

在应禁用的页面上,尝试以下操作:

UpdatePanel panel = Page.Form.FindControl("UpdatePanel1") as UpdatePanel;
if (panel != null)
{
    panel.Enabled = false;
}

根据UpdatePanel在母版页中的位置,您可能需要递归搜索页面,如下所示:

private void DisableControl(Control parentCtrl, string controlID)
{
    foreach (Control ctrl in parentCtrl.Controls)
    {
        if (ctrl.ID == controlID)
        {
            ((WebControl)ctrl).Enabled = false;
            continue;
        }
        DisableControl(ctrl, controlID);
    }
}

答案 2 :(得分:0)

您可以在内容页面上转换主属性以更正母版页类型,或使用

<%@ MasterType %>

要输入母版页。 然后,您将可以访问控件,并可以禁用更新面板。

答案 3 :(得分:0)

我还没有找到比下面更好的方法,要覆盖onInit并添加该代码

protected override void OnInit(EventArgs e)
    {
        //disables the ajax effect, and allows postback
       ScriptManager.GetCurrent(Page).EnablePartialRendering = false;


        base.OnInit(e);
    }