1

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

我有一个页面叫:News.aspx

在 News.aspx 中,我创建了一个 ModalPopupExtender,然后我添加了一个面板,并在面板内添加了用户控件:Share.ascx,以便在调用 Popup Extender 时显示带有用户控件的面板。

问题:

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

我怎么做?

谢谢你。

----------------------News.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() 函数。

4

2 回答 2

1

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

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

然后调用 Hide() 方法

popup.Hide();
于 2012-05-25T15:08:13.653 回答
0

您可以通过将取消按钮的 ID 附加到用户控件的 ID 来从 ModalPopupExtender 的父表单中引用 Ok 和取消控件。我使用以下代码:

<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。

于 2013-03-11T11:19:23.597 回答