Asp.net 从内容页禁用更新面板
你好,我在母版页上有一个ToolkitScriptManager和更新面板。我想在内容页面上禁用更新面板功能,但在其他页面上应该可以正常工作Asp.net 从内容页禁用更新面板,asp.net,asp.net-ajax,Asp.net,Asp.net Ajax,你好,我在母版页上有一个ToolkitScriptManager和更新面板。我想在内容页面上禁用更新面板功能,但在其他页面上应该可以正常工作 Master Page Code: <ajax:ToolkitScriptManager runat="server" ID="sm1" EnableScriptGlobalization="true" EnableScriptLocalization="true" ScriptMode="Release" CompositeScript-
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上工作,但应该在同一母版页的其他内容页上工作。请帮助检查页面名称并将cphMain的可见性设置为false后的代码如何
你探索过Razor+MVC了吗?在应该禁用它的页面上,尝试以下方法:
UpdatePanel panel = Page.Form.FindControl("UpdatePanel1") as UpdatePanel;
if (panel != null)
{
panel.Enabled = false;
}
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);
}
}
根据UpdatePanel在母版页中的位置,您可能需要递归搜索该页,如下所示:
UpdatePanel panel = Page.Form.FindControl("UpdatePanel1") as UpdatePanel;
if (panel != null)
{
panel.Enabled = false;
}
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);
}
}
您可以在内容页上强制转换母版属性以更正母版页类型,也可以使用
<%@ MasterType %>
打印母版页。
然后您将可以访问其上的控件,并可以禁用更新面板。我还没有找到比下面更好的方法来覆盖onInit并添加该代码
protected override void OnInit(EventArgs e)
{
//disables the ajax effect, and allows postback
ScriptManager.GetCurrent(Page).EnablePartialRendering = false;
base.OnInit(e);
}
将更新面板移动到您希望使用它的页面中,然后将其从母版页中删除。或者为第1页创建第二个占位符,该占位符位于updatepanel之外。非常感谢这对我有用。你探索过Razor+MVC吗?--没有