问题
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)
回答1:
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();
来源:https://stackoverflow.com/questions/7810548/asp-net-calling-a-method-in-aspx-from-a-usercontrol-ascx