是否可以在事件期间以编程方式更改控件的UpdatePanel?

时间:2011-07-19 22:12:41

标签: c# asp.net updatepanel

我有两个UpdatePanel,UpdatePanel1和UpdatePanel2。

我在服务器端事件中。我想从UpdatePanel1中删除一个控件并将控件添加到UpdatePanel2。当我尝试这样做时,我收到内部服务器错误500。

这么简单:

siblingPane.UpdatePanel.ContentTemplateContainer.Controls.Remove(splitter);
parentPane.UpdatePanel.ContentTemplateContainer.Controls.Add(splitter);

我查了一些关于向更新面板添加动态内容的操作方法,但在这种情况下我无法找到任何提及此问题的内容。有谁知道更多关于这个?感谢。

编辑:在我的页面上发生以下“事件”之后,我遇到了这个问题:

  • 用户启动操作。
  • 我回复客户端的操作,调用__doPostBack作为控件。
  • 该控件已实现IPostBackEventHandler。我现在在RaisePostBackEvent
  • 里面
  • 响应回发的控件具有描述/显示的层次结构here
  • 当此回发结束时,需要修改网页的状态,以便删除某些控件,并且在某些情况下,其他控件会从DOM层次结构向上移动到父UpdatePanel。

我不想在我的__doPostBack之后导致整页回复,这会破坏一切的目的。我无法在Page_Init期间更改控件的结构,因为控件RaisePostBackEvent是我完成所有繁重工作的地方。

1 个答案:

答案 0 :(得分:0)

服务器错误可能说明了一些不允许修改控件集合的内容?一般来说,应该在页面生命周期的OnInit()(可能是OnPreInit()?)部分添加/删除控件。