Проблема с настройкой видимости элементов управления на дочерней главной странице в asp.net - PullRequest
2 голосов
/ 02 мая 2011

У меня есть родительская главная страница (Master.Master) и дочерняя главная страница (Child.Master).Child.Master наследует файл мастер-страницы Master.Master.Теперь в Child.Master я хочу установить для видимости Div (чей ID Div1) значение false, для чего я использую следующий код:

protected void Page_Load(object sender, EventArgs e)
{
   this.FindControl("Div1").Visible = false;
}

Вот код в Child MasterФайл страницы:

<%@ 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.

Может кто-нибудь объяснить, почему так происходит?

Спасибо в ожидании

Ответы [ 4 ]

5 голосов
/ 02 мая 2011

EDIT:

В этом случае, если div является элементом верхнего уровня, и вы находитесь в page_load дочерней главной страницы, в которой находится div, вы должны просто выполнить

Div1.Visible = false;

Почему бы не использовать панель управления?

2 голосов
/ 07 июня 2011

вы должны сказать

this.Master.FindControl("Div1").Visible = false;
1 голос
/ 02 мая 2011

Мастер страница загружается после page_load.Поэтому, когда вы пытаетесь обратиться к главной странице во время page_load, ее свойства и методы еще не доступны.Переместите это вниз в жизненном цикле страницы. Жизненный цикл страницы ASP.NET , Еще один ответ SO на жизненном цикле главной страницы / страницы .дочерний мастер загружается во время загрузки страницы, а родительский мастер загружается во время загрузки дочернего мастера.

1 голос
/ 02 мая 2011

Попробуйте установить @MasterType на страницах содержимого и на дочерних главных страницах Ниже приведены некоторые справочные ссылки

http://msdn.microsoft.com/en-us/library/ms228274.aspx

http://dotnet.dzone.com/news/back-basics-%E2%80%93-using-mastertype?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+zones%2Fdotnet+%28.NET+Zone%29

http://dotnetslackers.com/community/blogs/haissam/archive/2008/02/11/mastertype-directive-in-content-page.aspx

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...