2012-03-31 65 views
0

我打開按鈕click.j打開面板作爲對話框。在該面板中有iframe,並且在那個iframe src中,我調用了新頁面。在jQuery對話框中調用的aspx頁面的頁面加載不第一次調用

我已經在頁面加載初始化jQuery的對話框如下 /*初始化頁面加載對話框*/

$(function(){ 
    $("#PanelTest").dialog(
    {      
     minWidth: 500, 
     minHeight: 500, 
     autoOpen: false 
    });  
}); 

在此功能,我在此函數

function OpenPopupTest() 
{ 
    $("#PanelTest").dialog('open') 
} 

打開面板對話框我的面板如下

<asp:Panel ID="PanelTest" runat="server" Style="display: none; background-color: White; 
    font-size: 12px;"> 
    <div id="DivTst" style="text-align: left; margin-top: 20px; margin-left: 10px"> 
     <iframe id="iframeTest" src="Test1.aspx" height="400px" width="400px"></iframe> 
     <br /> 
    </div> 
</asp:Panel> 

此按鈕位於側面更新面板。

在botton屬性後面的代碼中,我調用了javascript函數。 ButtonTest.Attributes.Add( 「點擊」, 「OpenPopupTest()」);

當我點擊ButtonTest按鈕彈出窗口打開。在Test1.aspx中有1個文本框,我想填寫Test1.aspx的頁面加載事件。我在Test1.aspx的頁面加載事件中編寫了用於將值放入文本框的代碼。當我調試代碼時,我發現這個代碼被調用,但當彈出窗口打開時,文本框中沒有顯示任何值。 我認爲,當面板的頁面加載當時在iframe調用的頁面即ie。 Test1.aspx也正在加載。我想從父頁面傳遞1個值到子頁面(Test1.aspx),通過它填充文本框中的值。

請讓我知道如何做到這一點。

任何幫助將不勝感激。

+0

它有沒有成爲一個iframe?我認爲使用ajax來加載內容會更容易,更好,並且在ajax成功的時候打開對話框。 – 2012-04-02 06:24:48

+0

您可以讓我知道如何使用ajax加載內容以及如何在ajax成功上打開對話框。 – user443305 2012-04-05 18:16:21

回答

0

而不是使用iframe我會做一個正常的ajax請求。

所以我會做:

function OpenPopupTest() 
{ 
    //Link is clicked, get data, and open popup when data is ready 
    $.get('Test1.aspx', function(data) { 
     $('#DivTst').html(data); 
     $("#PanelTest").dialog('open'); 
    }); 
} 

function RefreshPopupTest() 
{ 
    //Link is clicked, update data 
    $.get('Test1.aspx', function(data) { 
     $('#DivTst').html(data); 
    }); 
} 

function OpenPopupIFrameTest() 
{ 
    //Link is clicked, update the iframe and open idalog 
    document.getElementById("iframeTest").contentDocument.location.reload(true); 
    $("#PanelTest").dialog('open'); 
} 


function RefreshIFrameTest() 
{ 
    //Link is clicked, update the iframe 
    document.getElementById("iframeTest").contentDocument.location.reload(true); 
} 
+0

謝謝。我能夠通過此代碼打開彈出窗口。但現在我有另一個問題。在我的Test1.aspx頁面中,我有1個TextBox和4個按鈕。點擊2個按鈕上有一些服務器端代碼。彈出窗口正確打開,但是當我點擊任何按鈕時,父頁面正在消失,並且代替父頁面彈出窗口正在打開,就像在window.open中發生的那樣。任何關於這個的想法。 – user443305 2012-04-06 10:15:19

+0

那是因爲你沒有iframe了。什麼是功能,他們可以在「父母」頁面上完成什麼?否則,您可以在打開的對話框中更新iframe。如果你想知道他們做了什麼,生病嘗試做一些示例代碼,或編輯代碼來更新iframe :) – 2012-04-07 21:41:53

+0

我不能在父頁面寫服務器端代碼。服務器端代碼必須在子頁面中,即。 Test1.aspx。有沒有一種方法可以在對話框打開時更新iframe。 – user443305 2012-04-08 15:36:42

相關問題