Я хотел бы добавить (несколько спорное) мнение, что проверка ПУСТОЙ УКАЗАТЕЛЬ после попытки выделения является в значительной степени упражнением в тщетности. Если Ваша программа когда-нибудь сталкивается с той ситуацией, возможности - Вы, не может сделать намного больше, чем выход быстро. Вероятно, что любая последующая попытка выделения также перестанет работать.
, не проверяя на ПУСТОЙ УКАЗАТЕЛЬ, Ваш последующий код попытался бы разыменовать Нулевого указателя, который имеет тенденцию выходить из программы быстро с относительно уникальным (и легко debuggable) условие выхода.
я не пытаюсь говорить Вы из проверки ПУСТОЙ УКАЗАТЕЛЬ, это - конечно, добросовестное программирование. Но Вы не получаете много от него, если в очень конкретных случаях, где можно, возможно, хранить некоторую информацию восстановления (не выделяя больше памяти), или свободную менее важную память, и т.д. Но те случаи, не будет относительно редко для большинства людей.
, Учитывая это, я просто доверил бы компилятор для броска bad_alloc, лично - по крайней мере в большинстве случаев.
При вложении мастер-страниц вы получите дополнительный контейнер «Контент», который вам необходимо просмотреть.
В результате, если вы пытаетесь использовать FindControl с заданной дочерней страницы, обычный подход имеет эффект:
Label myLabel = (Label)this.Master.FindControl("myLabel");
myLabel.Text = "Success!";
Поскольку у нас есть вложенная главная страница, с "myLabel" в дочернем мастере этот элемент управления будет содержаться в элементе управления содержимым.
Таким образом, это изменяет код на:
ContentPlaceHolder ph = (ContentPlaceHolder)this.Master.Master.FindControl("yourContentPane");
Label myLabel = (Label)ph.FindControl("myLabel");
myLabel.Text = "Success!";
и в VB.NET
Dim ph As ContentPlaceHolder = DirectCast(Me.Master.Master.FindControl("yourContentPane"), ContentPlaceHolder)
Dim myLabel As Label = DirectCast(ph.FindControl("myLabel"), Label)
myLabel.Text = "Success!"
Содержимое дочерней страницы загружается в первый элемент управления главной страницы, который впоследствии загружается на главную страницу прародителя.
пробовали ли вы this.Master.Master.FindControl ("controlname");
?
Он также работает для межстраничной обратной передачи:
ContentPlaceHolder ph = (ContentPlaceHolder) PreviousPage.Master.FindControl ("ContentPlaceHolder");
string txt = ((TextBox) (ph.FindControl ("UserTextBox"))). Text;