很多ASP.NET 初学者对于在Web Form 动态建立控件的问题困扰,常见到的问题是为何动态建立的控件无法像拖曳到画面上的控件有一样的效果,例如无法加载ViewState 的数据 (无法呈现更新的值) 及动态控件事件处理等等问题。
以下这个范例就是说明如何在Web Form 上动态建立一个TextBox 及Button 控件,并处理Button 的Click 事件。
1![]()
为何要在Init 事件中就动态建立控件,而不是在Load 事件中呢?主要的原因是Init 事件在LoadViewState 之前发生,而Load 事件是在LoadViewState 之后。你要在LoadViewState 之前就把控件准备好,机制才能由ViewState 中加载更新控件的属性值。