如何从另一个页面隐藏具有用户控件的 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()函数。
从后面的用户控制代码中尝试找到您的 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"。