ASP.Net:从ModalPopupExtander中的iframe控制MainPage

时间:2011-01-28 10:57:42

标签: asp.net modalpopupextender linkbutton

我有一个页面“Default.aspx”。 在这个页面中是一个带有iFrame的ModalPopupControl:

 <div style="float: right; margin-right: 10px; margin-top: 8px;">
                        <asp:Button ID="btnSearchGo" runat="server" Text="Jetzt suchen" OnClick="btnSearchGo_Click" />
                    </div>
                    <asp:ModalPopupExtender BackgroundCssClass="ModalPopupBG" OkControlID="linkClosestartSeach"
                        PopupDragHandleControlID="PopupHeader" ID="mpeMiniSearch" runat="server" TargetControlID="linkFooterImpressum"
                        PopupControlID="panMiniSearch">
                    </asp:ModalPopupExtender>
                    <asp:Panel Style="display: none" ID="panMiniSearch" runat="server">
                        <div class="HellowWorldPopup">
                            <div class="PopupHeader" id="Div10">
                                Suche</div>
                            <div class="PopupBody">
                                <iframe id="iFrameMiniSearch" runat="server" src="MiniSearch.aspx" class="iFramePopUp">
                                </iframe>
                            </div>
                            <div class="popupFooter">
                                <asp:LinkButton Text="Schließen" class="linkPupopClose" runat="server" ID="linkClosestartSeach"></asp:LinkButton>
                            </div>
                        </div>
                    </asp:Panel>



 protected void btnSearchGo_Click(object sender, EventArgs e)
    {
        iFrameMiniSearch.Attributes["src"] = "MiniSearch.aspx";
   //Do More
        mpeMiniSearch.Show();
    }

现在我在iFrame中有一个LinkBut​​ton应该关闭MPE并将Page Default.aspx重定向到Register.aspx。

任何想法怎么做?

1 个答案:

答案 0 :(得分:4)

首先,您需要为BehaviorID指定ModalPopupExtender,以便您可以从客户端访问它。该属性默认为扩展器的ClientID,具体取决于容器链,因此最好明确指定它:

<asp:ModalPopupExtender ID="mpeMiniSearch" runat="server"
    BehaviorID="mpeMiniSearch" BackgroundCssClass="ModalPopupBG"
    OkControlID="linkClosestartSeach" PopupDragHandleControlID="PopupHeader"
    TargetControlID="linkFooterImpressum" PopupControlID="panMiniSearch">
</asp:ModalPopupExtender>

然后,您可以从LinkButton的{​​{3}}活动中致电$find()

function yourLinkButton_clientClick()
{
    var modalPopup = window.parent.$find("mpeMiniSearch");
    if (modalPopup != null) {
        modalPopup.hide();
        window.parent.location.href = "Register.aspx";
    }
}