2011-01-06 64 views
0

我有一个这样的页面,控制结构就是这样。在服务器端,如何确定ModalPopupExtender目前是隐藏的?

  • UpdatePanel
    • Button
    • ModalPopupExtender
    • ModalPopup Content Container

最初,ModalPopup Content Container是一个空的控制。

用户点击Button后,会触发异步回传。在回发期间,服务器生成内容并附加到ModalPopup Content Container。还设置了ModalPopupExtender的属性。最后,调用ModalPopupExtender.Show()方法和UpdatePanel.Update()方法来显示模式弹出。

如果ModalPopup Content Container中的所有控件都包含简单控件,则此方法正常工作。如果控件是需要回发到服务器端的按钮,那是一个问题。

由于ModalPopup Content Container中的控件是动态创建的。如果ModalPopup Content Container中的控件触发回发事件,则必须在服务器端调用RaisePostBackEvent之前创建控件。

我的想法是确定ModalPopupExtender是隐藏的还是显示在客户端以便重新生成ModalPopup Content Container中的动态控件。

所以我的问题是如何确定一个ModalPopupExtender被隐藏或显示。

因为如果你认为我的方法根本不起作用,请给我一些建议。谢谢!

回答

1

一种方法是在ViewState中使用布尔属性来跟踪弹出条件,即在调用.Show方法之前或之后将其设置为true。然后在关闭对话框时将其设置为false。

如果您想在客户端执行某些操作,也可以使用HiddenField。

+0

这是唯一的方法吗?我已经通过了有关它,但我想看看ModalPopupExtender的原始逻辑。 – 2011-01-06 04:22:59

+0

我不认为mpe公开任何这样的属性,所以你的下一个选择将是编写自定义控制,从MPE派生出你想要的功能。 – gbs 2011-01-06 04:31:08

相关问题