2012-07-18 61 views
0

我有一個pageA.aspx。在其中我打開一個包含pageB.asxp的iframe的jQuery對話框。如何從jQuery對話框回傳到父頁面?

var dlg = $('#dialog1').html('<iframe id="ifrm"></iframe>'); 
dlg.dialog({ 
    autoOpen: false, 
    resizable: false, 
    draggable: false, 
    modal: true 
}); 

dlg.parent().appendTo(jQuery("form:first")); 


    $('#buttonOpenDialog').click(function() { 
     var url = '../PageB.aspx'; 
     $("#dialog1>#ifrm").attr("src", url); 
     $('#dialog1').dialog('open'); 
     return false; 
    }); 

直到這裏一切正常。現在,我提交表單,當回發完成我要關閉這個對話框我那樣做:

function closePopup() { 
    parent.$("#dialog1").dialog('close'); 
    __doPostBack(); 

}

,我想刷新父頁面pageA.aspx沒有做醜陋的

__doPostBack() 

我該如何做到這一點? 謝謝

編輯:這似乎是一個複雜的問題。請參與; P

回答

1

在父頁面中添加一個隱藏按鈕。當模式關閉時,生成隱藏按鈕的單擊事件。它會刷新父頁面。

dlg.dialog({ 
    autoOpen: false, 
    resizable: false, 
    draggable: false, 
    modal: true, 
    close: function (event, ui) { 
      // btnHidden is the id of the hidden button. 
      document.getElementById('<%=btnHidden.ClientID%>').click(); 
      // To refresh gridview when user close dialog 
      } 
}); 
0

您可以將提交表單的_target屬性設置爲_parent。 POST的結果將顯示在父框架中(pageA.aspx)

<form target="_parent"> 
</form> 

這是你想要的嗎?

+0

這是什麼CrossPage Postback呢?就像那樣,我必須在目標頁面中處理事件,對吧? – anmarti 2012-07-19 08:39:43

+0

我試過了,它不是我所需要的。這種方式當表單submited時,對話框在父頁面上被最大化。此外,我有不止一個按鈕,使回發。它應該只適用於所需的按鈕。 – anmarti 2012-07-19 11:52:14

相關問題