在asp.net的子母版页中设置控件可见性的问题
本文关键字:控件 设置 可见性 问题 母版页 asp net | 更新日期: 2023-09-27 17:54:00
我有一个母版页(master . master)和子版页(child . master)。这个孩子。大师继承大师。Master母版页文件。现在在孩子。主我想设置Div(其ID是Div1)的可见性为false,为此我使用以下代码:
protected void Page_Load(object sender, EventArgs e)
{
this.FindControl("Div1").Visible = false;
}
下面是子母版页文件中的代码:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Webstore.Master.cs" Inherits="WebStore.WebStoreMaster" MasterPageFile="~/Login.Master" %>
<asp:Content ID="UserMaster" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<div id="Div1" runat="server">
<div id="Sidebar" runat="server" style="float: left; margin-top: 100px; margin-right: 20px;">
</div>
</div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
编译器给我以下错误:
Object reference not set to an instance of an object.
有人能解释一下为什么会这样吗?感谢期待
EDIT:
在这种情况下,如果div是一个顶级元素,并且您在div所在的子母版页面的page_load中,您应该能够执行
Div1.Visible = false;
为什么不使用Panel控件?
你应该说
this.Master.FindControl("Div1").Visible = false;
尝试在内容页和子母版页中设置@MasterType。以下是一些参考链接
http://msdn.microsoft.com/en-us/library/ms228274.aspxhttp://dotnet.dzone.com/news/back-basics-%E2%80%93-using-mastertype?utm_source=feedburner& utm_medium = feed& utm_campaign =提要% 3 +区域% 2 fdotnet + % 28.净+带% 29
http://dotnetslackers.com/community/blogs/haissam/archive/2008/02/11/mastertype-directive-in-content-page.aspx谢谢
主页是在page_load之后加载的。因此,当您尝试在page_load期间访问母版页时,它的属性和方法还不可用。在页面生命周期中将其向下移动。ASP。. NET页面生命周期,主页/页面生命周期的另一个SO答案。子母版在page_load期间加载,父母版在page_load期间加载。