http://www.allinterview.com/showanswers/73327.html
a)如果我正确理解了上面的文章,那么当页面有一个与之关联的母版页时,那么在设计时创建的所有控件(在母版页中声明的控件和在内容页中声明的控件)只在Init事件期间被分配声明性值?
b)假设我们的页面与母版页相关联,并且还使用了一个主题-->皮肤文件也在初始化事件期间应用,所以我假设在初始化事件期间,Asp.Net首先将控件初始化为它们的声明性值,然后才对它们应用皮肤规则?
c)但是如果页面不使用母版页,那么它在设计时声明的控件会在Init事件之前被赋值吗?
谢谢
发布于 2010-01-14 19:13:57
这是一个better article about this on MSDN。向下滚动到生命周期事件。
如果我没有理解错您的问题,那么您在a、b和c中提出的所有问题都是在Pre_Init中发生的。Init事件在Pre_Init期间初始化所有控件后激发。因此,在初始化过程中,您现在可以读取或初始化这些控件的属性。
请注意,在初始化过程中,您仍在“初始化”控件的属性。
例如。
<asp:Label ID="Label1" runat="server" CssClass="someclass"></asp:Label>
Init:
Label1.CssClass = "someotherclass";
如果我说错了请纠正我,伙计们。
我相信在Pre_Init过程中,Label1被初始化为“某个类”,然后Label1的CssClass被重新初始化(初始值被更改)为“另一个类”。因此,当页面加载时,类值将是“某个其他类”。
由于Label1尚未完成初始化,因此尝试访问Pre_Init块中的Label1.CssClass将不起作用。您可以从Init访问控制属性。
无论您是否拥有MasterPage,此初始化顺序都不会更改。将MasterPage看作是另一个控件。我相信在Pre_Init期间,MasterPage中的所有控件都会被初始化。
希望这一点是清楚的。
https://stackoverflow.com/questions/2066804
复制相似问题