在某些情况下,如果你最终得到用updatePanels包装的嵌套modalPopup(我不知道,并且可能应该重构,但这是我们正在使用的,因为我们想要的一些用户控件如何当你发起一个应该打开嵌套modalPopup的回发时,它会关闭父级的一个回复。为了论证,如果我设置一个断点并运行

((ModalPopupExtender)this.Parent.Parent.FindControl("modalPopupExtender'sID").Show();

在调用子modalPopup的Show()方法之前,它就像我们原先预期的那样工作。在我看来,因为当updatePanel嵌套时,他们可以回发他们的父,父modalPopup“不知道”它应该是从头开始显示并重新加载其面板的可见性为假。因为子modalPopup然后嵌套在可见性为false的父面板内,所以对它调用Show()也没有效果。因此,不是打开另一个modalPopup,而是关闭当前的modalPopup。这不是一个错误,只是我们没想到的行为,所以很难跟踪,没有任何异常抛出任何地方,但我认为上述解释是有道理的...如果我不正确地理解问题,请澄清它并且启发我,因为这似乎不会一直发生,我认为它会!! 在这一点上,对于这种特殊情况,我们不得不重新编写其中一些控件而不是最终使用嵌套的updatePanel,所以这不会发生,但我很好奇:
有没有人遇到这个问题,你有没有想出任何聪明的解决办法,不涉及调用FindControl()来重新显示()有问题的modalPopup?

有帮助吗?

解决方案

我已经解决了这个问题!
如果您将UpdatePanel的UpdateMode更改为“Conditional”,则子UpdatePanel会在子UpdatePanel回发后回发,然后将它们嵌套完全没有问题!
我不确定为什么UpdateMode =" Always"是默认的,但是,经验教训。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top