Как вызвать метод управления пользователем со страницы в asp.net 2.0? - PullRequest
0 голосов
/ 21 сентября 2009

У меня есть пользовательский контроль, используемый на главной странице. Я добавил страницу с главной страницей.

Теперь мне нужно вызвать метод управления пользователем со страницы. Как это сделать? Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

Предполагая, что ваш метод общедоступен, а тип вашего пользовательского элемента управления - YourUserControlsType, попробуйте следующее:

YourUserControlsType ctrlAtMasterPage = 
      (YourUserControlsType)Page.Master.FindControl("YouControlsID");
ctrlAtMasterPage.YourPublicMethod();
0 голосов
/ 22 сентября 2009

Если у вас нет ссылки участника на элемент управления, вам следует рассмотреть возможность отделения страницы от элемента управления. В идеальном мире страница не обязательно должна знать о контроле, который может содержать или не содержать . Следовательно, вы можете посмотреть на реализацию шаблона MVP.

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

Несмотря на то, что разделение может занять несколько дополнительных минут, во многих случаях это оправдывает усилия.

0 голосов
/ 21 сентября 2009

Это даст вам контроль, даже если он был добавлен программно:

В элементе страницы вы добавили:

TextBox FoundTextBox = (TextBox)this.Master.FindControl("RunAtServerTextBoxServerID");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...