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

the*_*ghn 2 asp.net controls

我想根据一些特定条件为页面添加更多控件.这些控件不需要任何ViewState或绑定数据,它就像静态链接一样简单.我想知道我在哪里可以编写代码:inside OnLoadOnInitmethod?为什么?如果我把它放在里面OnLoad,我应该添加以下行:if (IsPostBack) return;在任何初始化代码之前?

Sco*_*ell 6

您可以在OnInit方法或OnLoad中添加控件,无论它们是否需要视图状态.(原因是因为只要向控件添加控件,控件就会加载其视图状态,即使您在LoadViewState阶段之后添加它...)

我应该添加以下行:if (IsPostBack) return;在任何初始化代码之前?

不可以.必须在每个页面加载时将动态添加的控件添加到控件层次结构中,而不仅仅是初始加载控件.

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

有关基于某些外部条件(例如数据库中的配置)动态加载控件的工作端到端示例,请参阅创建动态数据驱动的用户界面.

快乐编程!