ASP.NET User Control Наследование от User Control генерирует нулевую ссылку - PullRequest
3 голосов
/ 25 ноября 2010

Это должно быть распространенной проблемой.

  • Пользовательский элемент управления A имеет TextBox T.
  • Пользовательский элемент управления B наследуется от пользовательского элемента управления A.
  • Пользовательский элемент управленияB помещается на страницу P.

Во время события Page_Load на странице P, если вы попытаетесь получить доступ к TextBox T, вы обнаружите, что оно пустое.

Есть ли элегантное решение?для этого?

Ответы [ 2 ]

7 голосов
/ 25 ноября 2010

Наследование UserControls от UserControls не очень хорошая стратегия. Элементы в родительском UserControl не будут отображаться, поэтому ваш TextBox имеет значение null.

Лучшим вариантом было бы, чтобы UserControl A содержался в UserControl B - таким образом элементы UserControl A можно повторно использовать в других ваших пользовательских элементах управления.

Посмотрите на этот другой пост о наследовании UserControls - Как (если вообще) вы можете заставить ASP.NET UserControl наследовать от другого UserControl? .

1 голос
/ 05 декабря 2010

Включает ли ASCX элемента управления B текстовое поле T?Это необходимо для того, чтобы текстовое поле T не было нулевым.Если controlB не содержит текстовое поле T, свойство, объявленное в коде позади, не привязано ни к какому внешнему элементу управления и, следовательно, остается нулевым.

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