2012-03-31 6 views
0

ボタンクリック時にjqueryダイアログを開きます。ダイアログボックスとしてパネルを開きます。そのパネルにはiframeがあり、そのiframe srcに私は新しいページを呼び出しました。ページ最初の呼び出しではないjqueryダイアログで呼び出されたaspxページのロード

私は、この関数でダイアログとして

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

をパネルを開いています。この機能で /*ページの読み込み時にダイアログを初期化*/

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

を次のように私は、ページの読み込みにjqueryのダイアログを初期化しています私のパネルは以下の通りです

<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> 

このボタンはサイド更新パネル。

私はjavascript関数をコールしています。 ButtonTest.Attributes.Add( "onclick"、 "OpenPopupTest()");

ButtonTestボタンをクリックすると、ポップアップが開きます。 Test1.aspxには、Test1.aspxのページロードイベントを入力する1つのテキストボックスがあります。私はTest1.aspxのページロードイベントでテキストボックスに値を入れるためのコードを書いています。コードをデバッグすると、このコードが呼び出されていることがわかりましたが、ポップアップが開くと、テキストボックスに値が表示されません。 パネルが存在するページがその時に読み込まれたとき、iframeで呼び出されたページと思う。 Test1.aspxも読み込まれています。親ページから子ページ(Test1.aspx)に1値を渡して、テキストボックスの値が入力されるようにしたいとします。

これを達成する方法を教えてください。

ご協力いただければ幸いです。

+0

それはインラインフレームでなければなりませんか?私は、コンテンツを読み込むためにajaxを使用する方が簡単で良い解決策になると思っています。そして、ajax succesではダイアログを開きます。 –

+0

ajaxを使ってコンテンツを読み込む方法と、ajaxの成功のためにダイアログを開く方法を教えてください。 – user443305

答えて

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つのボタンをクリックするといくつかのサーバー側のコードがあります。ポップアップが正しく開かれていますが、いずれかのボタンをクリックすると親ページが消えてしまい、parent.popupの代わりにwindow.openのように開かれています。これに関するアイデア – user443305

+0

あなたはiframeをもう所有していないのでうーん。機能とは何ですか?彼らは "親"ページで何かできるのでしょうか?そうでなければ、ダイアログのiframeを更新することができます。あなたが何をしているのかを記述している場合は、いくつかのサンプルコードを作成するか、iframeを更新するコードを編集してください:) –

+0

親ページにサーバーサイドコードを書き込むことはできません。サーバーのサイドコードは、子ページになければなりません。 Test1.aspx。ダイアログが開いたらiframeを更新する方法はありますか? – user443305

関連する問題