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
  • 399,467
  • 113
  • 570
  • 794
eMi
  • 5,540
  • 10
  • 60
  • 109

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,677
  • 2
  • 29
  • 40