2011-01-28 2 views
1

У меня есть страница «Default.aspx». На этой странице является ModalPopupControl с плавающим фреймом:ASP.Net: Управление MainPage из iframe в ModalPopupExtander

<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 в плавающем фрейме, который должен закрыть П и перенаправить страницу Default.aspx в Register.aspx.

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

ответ

4

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

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

Затем, вы можете позвонить $find() из ClientClick случае ваши LinkButton «ы:

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

Я не ожидал такого конкретного, быстрого и прекрасного рабочего ответа на такой конкретный вопрос, спасибо вам очень много! – Kovu