2

got an Default.aspx

its Codebehind has a Method: public void DoSomething(){}

The Default.aspx has got a UserControl.ascx

In the Codebehind of my UserControl.ascx I would like to call my DoSomething() from Default.aspx, but this doesn't works:

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

How can I achieve this? (Default.aspx is also the StartupPage of the Masterpage)

Joel Coehoorn
  • 380,066
  • 110
  • 546
  • 781
eMi
  • 5,246
  • 10
  • 58
  • 107

1 Answers1

4

Default defaultPage = new Default(); would create a new instance of your page, which isn't what you want.

From your usercontrol, you could do something like this:

((Default)Page).DoSomething();

Or to be safe and ensure that the Page is of type Default since a user control could exist on many different pages (which is why this may not be the best idea).

Default p = Page as Default;
if( p != null )
    p.DoSomething();
Doozer Blake
  • 7,587
  • 1
  • 28
  • 40