您好我在母版页上有一个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上工作,但它应该在同一母版页的其他内容页面上工作。请帮忙
答案 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);
}