【发布时间】:2011-01-25 23:55:42
【问题描述】:
我会尽量在这里描述。我们有一些正在运行的代码,而现在,没有被更改,却没有。我已经隔离了这个问题,所以情况如下:
我们有一个 ASPX 页面,上面有 2 个 asp:Panel 控件(Panel1 和 Panel2)。在每个面板中,都有一个 WebUserControl(Panel1 包含 UserControl1,Panel2 包含 UserControl2)。此页面上有 AJAX 工具包 Scriptmanager,仅此而已。当用户第一次访问页面时,Panel1 被显示,而 Panel2 被隐藏。
在 UserControl1 中,有一个 asp:Panel,一个 asp:Label 包含一个 asp:UpdatePanel 和一个 asp:Button。在后面的代码中,有一个委托和一个引发它的事件 - 当您单击按钮时,会触发此事件。在包含 UserControl 的 ASPX 页面中有一个针对此事件的处理程序。
在 Panel2 中有一个 asp:UpdatePanel、asp:Panel 和 asp:Label
所以在 ASPX 页面中,当您单击 UserControl1 中的按钮时,会处理该事件。此事件处理程序然后隐藏 Panel1 并显示 Panel2。至少那是过去发生的事情,但现在不会发生。
总结一下 - 第一次访问的 ASPX 页面显示 Panel1 和 UserControl1。在 UserControl1 中有一个按钮,用户单击它会在 ASPX 页面中引发事件,这应该隐藏 Panel1 并显示 Panel2。
如果您从 UserControl1 和 UserControl2 中删除 UpdatePanel,则代码可以正常工作。
显然,我们的“现实生活”代码更复杂 - 但这个小示例显示了问题所在。
这是一个包含问题的 zip:http://test.wikisaber.es/testajax.zip
【问题讨论】:
标签: asp.net updatepanel user-controls panel