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

在OnLoad或OnInit期间动态添加控件?

  •  2
  • thethanghn  · 技术社区  · 16 年前

    我想根据一些特定的条件向页面添加更多控件。这些控件不需要任何ViewState或绑定数据,只需一个静态链接即可。 OnLoad 或 OnInit 方法?为什么?如果我把它放进去 加载 ,是否应添加以下行: if (IsPostBack) return; 在任何初始化代码之前?

    4 回复  |  直到 16 年前
        1
  •  6
  •   Scott Mitchell    16 年前

    无论是否需要视图状态,都可以在OnInit方法或OnLoad中添加控件。(原因是,一旦将控件添加到页面,该控件就会加载其视图状态,即使是在LoadViewState阶段之后添加它……)

    我应该添加以下行: if (IsPostBack) return;

    否。必须将动态添加的控件添加到上的控件层次结构中 每一个 页面加载,而不仅仅是初始页面。

    如果您要使用动态添加的Web控件,我强烈建议您阅读以下两篇文章:

    Creating a Dynamic Data-Driven User Interface .

    快乐编程!

        2
  •  1
  •   womp    16 年前

    我建议只将控件静态地添加到页面中,并在满足条件时将其可见性切换为“True”。当它们不可见时,它们不会向页面呈现任何内容,这将为您省去很多麻烦,特别是因为听起来您对动态控件相当陌生。

        3
  •  0
  •   Matt Dawdy    16 年前

    我不确定我是否完全理解,但我个人会asp:文字打开然后在OnLoad事件中创建所需的HTML。

    如果这样做,那么放入该文本的html将保存在viewstate中,因此在postback中不必重做。

        4
  •  0
  •   chetan    16 年前

    http://chetanwarade.wordpress.com/2010/08/21/asp-net-add-dynamic-control-and-retrieve-dynamic-control-value-2/ 下面是演示如何添加动态控件和检索动态控件值的代码。

    推荐文章