ASP.Net: управление главной страницей из iframe в ModalPopupExtander - PullRequest
1 голос
/ 28 января 2011

У меня есть страница "Default.aspx".На этой странице находится ModalPopupControl с iFrame:

 <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();
    }

Теперь у меня есть LinkButton в iFrame, который должен закрыть MPE и перенаправить страницу Default.aspx в Register.aspx.

Любая идея, как это сделать?

1 Ответ

4 голосов
/ 28 января 2011

Во-первых, вам нужно указать BehaviorID для вашего ModalPopupExtender, чтобы вы могли получить к нему доступ со стороны клиента. По умолчанию это свойство равно ClientID расширителя, который будет варьироваться в зависимости от цепочки контейнеров, поэтому лучше указать его явно:

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

Затем вы можете позвонить $ find () с вашего LinkButton ClientClick события:

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