如何从另一个页面隐藏具有用户控件的 ModalPopupExenter

本文关键字:用户 控件 ModalPopupExenter 隐藏 另一个 | 更新日期: 2023-09-27 18:35:17

我有一个用户控件,名为:Share.ascx

我有一个名为:新闻的页面.aspx

在新闻中.aspx我创建了一个 ModalPopupExtender,然后我添加了一个面板,并在面板中添加了用户控件:Share.ascx,以便在调用弹出窗口扩展器时显示带有用户控件的面板。

问题:

我只能从新闻中隐藏ModalPopupExtender.aspx因为ModalPopupExtender是在那里定义的,但我需要从用户控件调用ModalPopupExtender的HIDE功能:Share.ascx.cs

我该怎么做?

谢谢。

----------------------新闻资讯.aspx-------------------------

<asp:Content ID="Content1" runat="server">
    <asp:LinkButton ID="lbtnShare" runat="server" Text='Share Link' /> 
    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"  
    TargetControlID="lbtnShare" PopupControlID="Panel1" 
    Drag="true" RepositionMode=RepositionOnWindowResizeAndScroll
    BackgroundCssClass="modalBackground" >
    </asp:ModalPopupExtender>
    <asp:panel id="Panel1" runat="server" style="display:none">
        <uc2:ShareLink ID="ShareLink" runat="server" />
    </asp:panel>
</asp:Content>

----------------------Share.ascx-------------------------

<asp:UpdatePanel ID="upSET" runat="server">
   <ContentTemplate>
      <asp:Button ID="btnCancel" Text="Cancel" runat="server" OnClick="btnCancel_Click" CausesValidation="false" />
   </ContentTemplate>
</asp:UpdatePanel>

文件太长了,所以我省略了很多,只放了重要的部分。

Share.ascx有一个"取消"按钮,在该按钮中,我想调用位于News.aspx中的ModalPopupExtender1的Hide()函数。

如何从另一个页面隐藏具有用户控件的 ModalPopupExenter

从后面的用户控制代码中尝试找到您的 ModalPopupExtender

var popup = Parent.FindControl("ModalPopupExtender1") as ModalPopupExtender;

然后调用 Hide() 方法

popup.Hide();

可以通过将"取消"按钮的 ID 追加到用户控件的 ID 来引用 ModalPopupExtender 中父窗体中的"确定"和"取消"控件。我使用以下代码:

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" Enabled="True" 
            TargetControlID="Button1" PopupControlID="UpdatePanel1"
            OkControlID="OpenRec1_btnOK"
            CancelControlID="OpenRec1_btnCancel">
        </asp:ModalPopupExtender>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <uc1:OpenRec runat="server" id="OpenRec1" />
            </ContentTemplate>
        </asp:UpdatePanel>

我的用户控件中的"确定"和"取消"按钮名为"btnOK"和"btnCancel"。