【发布时间】:2011-04-30 09:23:53
【问题描述】:
在 ASP.NET 中创建动态控件的最佳位置在哪里? MSDN 说 Pre_init ,另一个 MSDN article 说 Init ,some people 说 Load 事件(我读到这不好做)。
我正在攻读 MS 认证,我想确保我知道哪个是理想的以及为什么。我最初的想法是在 pre_init 中创建对象并在 Load 事件中分配任何属性值(以便为动态控件加载 ViewState)。
【问题讨论】:
在 ASP.NET 中创建动态控件的最佳位置在哪里? MSDN 说 Pre_init ,另一个 MSDN article 说 Init ,some people 说 Load 事件(我读到这不好做)。
我正在攻读 MS 认证,我想确保我知道哪个是理想的以及为什么。我最初的想法是在 pre_init 中创建对象并在 Load 事件中分配任何属性值(以便为动态控件加载 ViewState)。
【问题讨论】:
我推荐 Page_Init()。这将绕过 ViewState 加载不一致的问题。控件将是可访问的,但视图状态尚未应用于它们。这正是您希望在第二篇文章中添加控件的地方。
此外,根据经验,这是可行的。其他任何方法都给我带来了问题。
【讨论】:
这取决于但我认为普遍的共识是越早越好。因此,如果您要向 Page 添加动态控件,请尽可能在 Pre_Init 阶段添加它们。如果您要向用户控件添加自定义控件,请在 Init 阶段添加它们(控件没有 Pre_Init)。
在某些情况下,您无法尽早添加它们。
作为一般经验法则,请尽快添加它们。
【讨论】: