【问题标题】:ASP.NET - Dynamic controls created in Page_Pre_init() or Page_Init() or Page_Load()ASP.NET - 在 Page_Pre_init() 或 Page_Init() 或 Page_Load() 中创建的动态控件
【发布时间】:2011-04-30 09:23:53
【问题描述】:

在 ASP.NET 中创建动态控件的最佳位置在哪里? MSDN 说 Pre_init ,另一个 MSDN article 说 Init ,some people 说 Load 事件(我读到这不好做)。

我正在攻读 MS 认证,我想确保我知道哪个是理想的以及为什么。我最初的想法是在 pre_init 中创建对象并在 Load 事件中分配任何属性值(以便为动态控件加载 ViewState)。

【问题讨论】:

    标签: .net asp.net dynamic


    【解决方案1】:

    我推荐 Page_Init()。这将绕过 ViewState 加载不一致的问题。控件将是可访问的,但视图状态尚未应用于它们。这正是您希望在第二篇文章中添加控件的地方。

    此外,根据经验,这是可行的。其他任何方法都给我带来了问题。

    【讨论】:

      【解决方案2】:

      这取决于但我认为普遍的共识是越早越好。因此,如果您要向 Page 添加动态控件,请尽可能在 Pre_Init 阶段添加它们。如果您要向用户控件添加自定义控件,请在 Init 阶段添加它们(控件没有 Pre_Init)。

      在某些情况下,您无法尽早添加它们。

      1. 在 对某些用户输入的响应(例如 按钮单击)。
      2. 您需要根据您所在页面的状态加载特定控件。在这种情况下,您可能必须等到包含控件的加载事件才能确定是否需要加载该控件。

      作为一般经验法则,请尽快添加它们。

      【讨论】:

        猜你喜欢
        • 2016-02-20
        • 1970-01-01
        • 2011-10-08
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多