似乎在某些情况下,如果您最终使用 updatePanels 包裹的嵌套 modalPopups (我知道这并不理想,可能应该重构,但这就是我们正在使用的,因为我们想要重构一些用户控件使用已编写),当您触发应该打开嵌套 modalPopup 的回发时,它会关闭父级。为了争论,如果我设置断点并运行
((ModalPopupExtender)this.Parent.Parent.FindControl("modalPopupExtender'sID").Show();
就在调用子 modalPopup 的 Show() 方法之前,它按我们最初的预期工作。在我看来,因为当 updatePanels 嵌套时,它们可以回发其父级,父级 modalPopup “不知道”它应该显示并从头开始重新加载其面板的可见性为假。因为子 modalPopup 然后嵌套在可见性为 false 的父面板中,所以对其调用 Show() 也没有任何效果。因此,不是打开另一个 modalPopup,而是关闭当前的。这不是错误,只是我们没有预料到的行为,所以很难追踪,没有任何地方抛出异常,但我认为上面的解释是有道理的......如果我理解错误的问题,请澄清它并启发我,因为这不会
在这一点上,对于这种特殊情况,我们被困在重新编写其中一些控件以不以嵌套的 updatePanels 结束,所以这不会发生,但我很好奇:
以前有没有人遇到过这个问题,你来过吗?是否有任何不涉及调用 FindControl() 以 re-Show() 有问题的 modalPopup 的巧妙解决方法?