【问题标题】:In server side, how to determine ModalPopupExtender is currently hidden?在服务器端,如何确定 ModalPopupExtender 当前是否隐藏?
【发布时间】:2011-01-06 00:17:22
【问题描述】:

我有一个这样的页面,控制结构也是这样的。

  • 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 是隐藏还是显示。

coz,如果你觉得我的方法根本行不通,请给我一些建议。谢谢!

【问题讨论】:

    标签: asp.net dynamic modalpopupextender


    【解决方案1】:

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

    如果你想在客户端做一些事情,你也可以使用 HiddenField。

    【讨论】:

    • 这是唯一的方法吗?我之前已经了解过它,但是我正在尝试查看 ModalPopupExtender 的原始逻辑。
    • 我认为 mpe 不会公开任何此类属性,因此您的下一个选择是编写从 MPE 派生的具有您想要的功能的自定义控件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多