ASP.NET Вызов метода в (ASPX) из пользовательского контроля (ASCX)? - PullRequest
2 голосов
/ 18 октября 2011

получил Default.aspx

его Codebehind имеет метод: public void DoSomething(){}

Default.aspx получил UserControl.ascx

В Кодексе позади моегоUserControl.ascx Я бы хотел позвонить своему DoSomething() из Default.aspx, но это не работает:

Default defaultPage = new Default();
defaultPage.DoSomething();

Как мне этого добиться?(Default.aspx также является стартовой страницей главной страницы)

1 Ответ

4 голосов
/ 18 октября 2011

Default defaultPage = new Default(); создаст новый экземпляр вашей страницы, а это не то, что вам нужно.

Из вашего пользовательского контроля вы можете сделать что-то вроде этого:

((Default)Page).DoSomething();

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

Default p = Page as Default;
if( p != null )
    p.DoSomething();
...