Как получить файл с выделенным кодом для распознавания типа пользовательского элемента управления? - PullRequest
0 голосов
/ 19 января 2011

У меня есть пользовательский элемент управления на странице mater, представляющий меню, назовем его CustomMenu. Файлы управляющего кода находятся в не специальном каталоге.

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

У меня есть открытое свойство для элемента управления, и я знаю, что могу получить элемент управления, ссылаясь на Page.Master.FindControl ('IdOfControlIwant');

Проблема, с которой я столкнулся, заключается в том, что мне не удается распознать тип элемента управления, распознаваемый компилятором, поэтому, когда я нахожу элемент управления меню, я фактически не могу с ним работать. Единственный способ получить код для распознавания типа - это зарегистрировать его в файле ascx, а затем добавить хотя бы один элемент управления на страницу, что нежелательно.

Мысли

Ответы [ 3 ]

1 голос
/ 19 января 2011

Вы должны объединить то, что опубликовали и Джейкоб, и Дзендрас. Добавьте директиву MasterType в aspx-файл вашей страницы контента:

<%@ MasterType VirtualPath="~/your.master"  %>

А на главной странице создайте свойство:

public CustomMenu MyCustomMenu {get{ return myCustomMenu;}}

Где myCustomeMenu - это идентификатор элемента управления пользователя на вашей главной странице.

Теперь вы сможете ссылаться на элемент управления пользователя со страницы содержимого. Итак, если пользовательский контроль CustomMenu имеет свойство SelectedItem, вы должны иметь к нему доступ следующим образом:

   public void Page_Load(object o, EventArgs e)
   {
       Master.MyCustomMenu.SelectedItem = 1;
   }
1 голос
/ 19 января 2011

Используйте директиву MasterType на своих страницах:

<%@ MasterType VirtualPath="~/your.master"  %>

Это будет строго указывать ссылку на вашу главную страницу, поэтому вы сможете добавлять свойства, к которым страницы могут обращаться.

0 голосов
/ 19 января 2011

Создайте свойство вашего класса MasterPage:

bool IsCustomMenuVisible {set{ CustomMenu.Visible = value;}}

И пользуйся, где хочешь.

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