我的问题是我有一个动态创建内容的基页。我的母版页上有按钮可以触发我的基页需要了解的事件。但我的基页上的OnLoad函数在我的母版页上的Button_Command函数之前触发。因此,我需要找出一种方法来在Button_Command函数有机会设置变量之后加载我的基页,或者我必须从Button_Command函数调用我的基页中的函数。
答案 0 :(得分:1)
您是否考虑过使用strongly typed master pages?
您还可以查看我的answer此问题。
答案 1 :(得分:0)
我相信你可以通过界面
来做到这一点public interface ICommandable
{
public void DoCommand1(object argument);
}
因此子页面实现了这个接口
public class MyPage : Page, ICommandable
{
public void DoCommand1(object argument) {
}
}
在母版页上
public class Master : MasterPage
{
public void Button_Command(object sender, EventArgs e)
{
if (Page is ICommandable)
{
(Page as ICommandable).DoCommand1(myargument);
}
else
throw new NotImplementedException("The current page does not implement ICommandable");
}
}
然而,自从我使用webforms以来已经很长时间了,所以我不能发誓这是有效的。我似乎记得以前写过类似的东西。
答案 2 :(得分:0)
您是否可以简单地将Button_Command逻辑封装到公共方法中,并从母版页上的Button_Command事件和子页面上的Load事件中调用该方法?像
这样的东西protected void Page_Load( object sender, EventArgs e )
{
var master = (MyMaster)this.Master;
master.Foo();
}