我有以下情况:
MasterPage MyMaster.Master
内容页面Content.aspx
UserControl MyUserControl.ascx
MyUserControl.ascx正在Content.aspx中使用,并以编程方式添加。内容页面使用的是MyMaster.Master
MyMaster.Master有一个变量我可以从Content.aspx访问,因为我有@MasterType指令集。我想要做的是以下内容:
1)在MyUserControl.ascx中设置一个值
2)来自Content.aspx的访问值
3)在MyMaster.Master中设置值
步骤2在contentLo的content.aspx中实现,如下所示:
Control ucControl= LoadControl("/UserControls/MyUserControl.ascx");
UserControls_MyUserControl myUC = ucControl as UserControls_MyUserControl;
//Do some caching stuff here
if (myUC != null)
myUC.PreRender += new EventHandler(myUC_PreRender);
PreRender处理程序只是将MyMaster.Master中的值设置为true。在MyMaster.Master中,我在PageLoad中检查该值并尝试显示它是否为真。这不起作用。
我怀疑它与页面生命周期有关,但我似乎无法找到哪个部分是错误的。
任何帮助都非常感激。
由于
答案 0 :(得分:1)
只是PreRender事件发生在Load事件之后。您必须在设置变量的事件之后检查变量。
您可以在此处查看页面循环中事件的顺序:ASP.NET Page Life Cycle Overview