代码之家  ›  专栏  ›  技术社区  ›  contactmatt

ASP.NET-在Page_Pre_init()或Page_init()或Page_Load()中创建的动态控件

  •  5
  • contactmatt  · 技术社区  · 15 年前

    在ASP.NET中创建动态控件的最佳位置是哪里? MSDN MSDN article 说是Init,然后 some people 说加载事件(我读到的不好做)。

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

    2 回复  |  直到 8 年前
        1
  •  4
  •   David    15 年前

    我建议使用Page_Init()。这将绕过ViewState不一致加载的问题。控件将是可访问的,但viewstate尚未应用于它们。这正是您希望在第二篇文章中添加控件的位置。

    而且,根据经验,这是可行的。其他任何方法都会给我带来麻烦。

        2
  •  4
  •   Dustin Hodges    15 年前

    这要视情况而定,但我认为普遍共识越早越好。因此,如果要向页面添加动态控件,请在初始化前阶段添加它们(如果可以)。如果要将自定义控件添加到用户控件,请尽可能在初始化阶段添加它们(控件没有Pre_Init)。

    有些情况下你不能这么早就添加它们。

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

    推荐文章