В asp.net, как получить ссылку на пользовательский веб-контроль из пользовательского контроля? - PullRequest
0 голосов
/ 23 марта 2010

У меня есть страница с пользовательским веб-контролем и пользовательским контролем. Мне нужно ссылку на webcontrol в классе usercontrol. Итак, я делаю объявление webcontrol как public в классе страницы. Но когда я делаю «this.Page», я не вижу веб-управления, перечисленного в списке, предоставленном intellisense. Скорее всего, я что-то упускаю.

На странице asp.net как получить ссылку на пользовательский веб-контроль из пользовательского контроля?

Пожалуйста, сообщите. Спасибо Панкай

Ответы [ 3 ]

2 голосов
/ 23 марта 2010

Возможно, вам лучше создать метод в UserControl, который принимает аргумент вашего WebControl.

Тогда пусть Пейдж свяжет их вместе.

То, что Usercontrol полагается на Page.FindControl, выглядит для меня как хак.

например. Примерно так в вашем UserControl:

public void SetWebControl(MyWebControl control)
{
// Do whatever
}

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

override OnInit()
{
this.MyUserControl1.SetWebControl(MyWebControl1);
}

Это все псевдокод ofc: -)

1 голос
/ 23 марта 2010

Если вы знаете идентификатор веб-управления, вы можете просто сделать:

Control ctrl = Page.FindControl (ID_of_the_webcontrol);
0 голосов
/ 23 марта 2010

Попробуйте получить контроль на странице методом FindControl:

Control yourUserControl = this.Page.FindControl("yourControlsID");

Класс Page - это экземпляр вашей страницы, это экземпляр базового класса System.Web.UI.Page. Таким образом, вы не можете получить публичное свойство с Page, если вы не приведете его к типу класса вашей страницы.

...