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

本文关键字:控件 UpdatePanel 方式更 事件 是否 编程 | 更新日期: 2023-09-27 18:02:30

我有两个UpdatePanels, UpdatePanel1和UpdatePanel2。

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

就像这样简单:

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

我查找了一些如何在更新面板中添加动态内容的操作方法,但是在这种情况下我没有找到任何提到这个问题的内容。有人知道更多关于这个的吗?谢谢。

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

  • 用户发起行动。
  • 我响应客户端调用__doPostBack以控制为目标的操作。
  • 这个控件已经实现了IPostBackEventHandler。我现在在RaisePostBackEvent中
  • 响应回发的控件具有此处描述/显示的层次结构
  • 当这个回发完成时,需要修改网页的状态,以便删除一些控件已经发生,并且在某些情况下,其他控件被移动到DOM层次结构的父UpdatePanel。

我不想在__doPostBack之后引起整个页面的post-back,那会破坏一切的目的。我没有能力在Page_Init期间改变我的控件结构,因为控件RaisePostBackEvent是我做所有繁重工作的地方。

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

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