Поиск элемента управления на странице из базового класса страницы - PullRequest
5 голосов
/ 08 мая 2009

Надеюсь, у тебя хорошая пятница и все такое ... хорошо, вот мой вопрос:

Все мои ASPX-страницы наследуются от базового класса BasePage. BasePage наследуется от:

System.Web.UI.Page

Теперь, как мне получить доступ / установить элемент управления на моей странице aspx из моей базы страниц? Я пробовал это:

HyperLink hypMainMenu = (HyperLink)Page.FindControl("hypMainMenu");
hypMainMenu.NavigateUrl = AppConfiguration.AppSettings.Urls.MainMenu;

Но hypMainMenu всегда нулевой - я не могу найти ублюдка. Есть идеи? Или это плохая практика, и кто-то может порекомендовать лучший способ сделать это?

Заранее спасибо!

1 Ответ

3 голосов
/ 08 мая 2009

Даже если то, что является и не является хорошей практикой, очень субъективно, я должен сказать, что попытка получить доступ к чему-либо из элемента управления из его базового класса - плохая практика. Базовый класс должен только содержать код, относящийся к всем классам, которые его унаследуют, и откуда вы знаете, что каждая страница, которую вы напишите в будущем, будет иметь этот элемент управления?

Лучшим способом решения вашей проблемы (который, как я предполагаю, будет иметь код для вашего главного меню только в одном месте) было бы написать UserControl, который вы включаете на каждой странице. Если вам нужно сделать что-то конкретное с этим элементом управления, вы можете сделать это в UC 's CodeBehind.

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