2011-11-30 45 views
1

我有一個網頁,我打開一個對話框,顯示另一個網頁。當我點擊這個子網頁上的提交按鈕時,它被加載到瀏覽器窗口中。如何關閉jQuery打開的對話框?

這裏是整個簡介:

在父頁面上,我有一個加載子一個div。

<div id="divMyDialog" title="Child Dialog Title"> 
</div> 

在jQuery的文件,我有以下幾點:

$("#divMyDialog").dialog({ 
    autoOpen: false, 
    bgiframe: true, 
    width: 800, 
    height: 400, 
    modal: true, 
    draggable: false, 
    resizable: false 
    }); 

function OpenDialog(FirstID, SecondID) { 
    $("#divMyDialog").dialog("open").load("ChildPage.aspx?FirstID=" + FirstID+ "&SecondID=" + SecondID); 
} 

現在,當我點擊一個asp:在ChildPage.aspx按鈕(一個數據庫動作之後),我想ChildPage.aspx顯示警報然後關閉。相反,發生的情況是它正確顯示警報,然後在瀏覽器中加載ChildPage.aspx。

在提醒,我有這個在onclick事件是ASP:按鈕:

Page.ClientScript.RegisterStartupScript(this.GetType(), "showalert", "<script>CloseMyDialog();</script>"); 

要關閉ChildPage.aspx對話,我有這樣的:

<script type="text/javascript"> 
    function CloseMyDialog() { 
     parent.$.fn.colorbox.close(); 
     return false; 
    } 
</script> 

請讓我知道如果你需要更多的澄清。我已經嘗試了很多東西,但到目前爲止沒有任何正確的工作。

謝謝。

回答

2

這將關閉一個jQuery的對話框:

$("#divMyDialog").dialog('close') 
+0

這會加載ChildPage。 aspx在瀏覽器窗口中。我已經試過了。 – Farhan

3

您正在加載的內容,這並不意味着它是一個iFrame,您加載的網頁內容到#divMyDialog。所以你不必做parent.$.fn。此外,如果你想關閉你可以做類似的對話框:

$("#divMyDialog").dialog("close"); 

,並關閉所有對話框

$(".ui-dialog-content").dialog("close"); 
0

你必須停止按鈕的提交過程。這可以通過在onclick()按鈕函數上返回false來完成。

+0

我已經返回false。你的意思是服務器端按鈕的事件? – Farhan

1

您必須將子頁面加載到iframe中。您可以使用的fancybox:

$(".my-link").fancybox({'type':'iframe'}); 

http://moleskinformatico.blogspot.com/2011/11/llamar-funcion-de-ventana-padre-desde.html

或者,你可以這樣做:

$(".my-link").click(function(){ 
e.preventDefault(); 
$this = $(this); 
$('<iframe id="site" src="' + this.href + '" />').dialog({ 
    width: 800, 
    height: 400, 
    modal: true 

});//dialog 
});//click 

http://blogs.antartec.com/desarrolloweb/2010/05/usando-jquery-dialog-con-iframe/

HTML:

<a hre="childPage.html" class="my-link">show-dialog</a> 
0

ScriptManager.Reg isterClientScriptBlock(Me,Me.GetType(),「closedialog」,「$(function(){$('#dialog')。dialog('close');});」,True)