2011-07-19 123 views
0

我有两个UpdatePanel,UpdatePanel1和UpdatePanel2。是否可以在事件期间以编程方式更改控件的UpdatePanel?

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

事情如此简单:

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

我查阅了一些怎么对的上添加动态内容到一个更新面板,但还没在这种情况下无法找到提及此问题的任何内容。有人对此有更多了解吗?谢谢。

编辑:我有具有以下“事件”发生在我的网页后,这个问题:

  • 用户发起的行动。
  • 我对操作客户端调用一个__doPostBack目标控件作出响应。
  • 该控件已实现IPostBackEventHandler。我现在内部被响应回发的RaisePostBackEvent
  • Control有描述/所示here
  • 层级当该回传完成需要修改,使得某些控件的删除已发生所述网页的状态,并,在某些情况下,其他控件会在DOM层次结构中上移到父UpdatePanel。

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

回答

0

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

+0

如何查看服务器错误?我看到的是: 无法加载资源:15Uncaught Sys.WebForms.PageRequestManagerServerErrorException:服务器500(内部服务器错误)的状态 Telerik.Web.UI.WebResource.axd回应Sys.WebForms.PageRequestManagerServerErrorException :处理服务器上的请求时发生未知错误。从服务器返回的状态代码是:500 我知道他们应该在页面生命周期的早期阶段进行设置,但我不认为这是可能的。 –

相关问题