MSDN表示在页面生命周期的PreInit事件中创建动态控件.
http://msdn.microsoft.com/en-us/library/ms178472.aspx
为什么?
在PreInit Event中创建有什么好处?
我见过开发人员在Page_Load方法中创建动态控件的代码?
如果有什么区别?
问候
解决方法
如果您不需要担心在回发中保存控件的ViewState,则Page_Load可以正常工作,但如果您需要保留它,则Load阶段不应该添加这些控件.
在加载ViewState之前,动态控件必须存在于页面的控件层次结构中.加载视图状态 – 初始化之前只有一个阶段.这意味着,如果您希望动态控件保持视图状态,则必须将它们添加到页面的Init事件中的控件层次结构中.
http://aspnet.4guysfromrolla.com/demos/printPage.aspx?path=/articles/092904-1.aspx
但请注意,您无法在Init事件中访问ViewState,因为它尚未加载.因此,如果需要,您需要使用不同的持久性介质来跨回发(如Session)存储变量.