1

我想在服务器控件代码中的 Page.Controls 中添加隐藏字段,但出现异常“无法DataBindInitLoad或阶段修改控件集合。PreRenderUnload ”如何解决此问题?

public class MyServerControl: Control
{
  HiddenField hf = new HiddenField{ID="hf"};
  protected override void OnInit(EventArgs e)
  {
    ...
    Page.Controls.Add(hf);
  }
}
4

1 回答 1

0

您需要聆听引发的错误。您可以将控件添加到现有容器(例如Panel)或将 aPlaceHolderControl用于其预期目的。

动态添加控件(尤其是回发)的问题在于 ViewState 不是很智能,并且按顺序加载控件。除非您将控件附加到最后,否则最终可能会出现无效的 ViewState。

于 2013-10-15T12:33:01.970 回答