在jquery对话框中调用的aspx页面的页面加载没有第一次调用

时间:2012-03-31 18:19:47

标签: jquery dialog load

我在按钮点击时打开一个jquery对话框。我打开面板作为对话框。在该面板中有iframe,在iframe src中我调用了新页面。

我在页面加载中初始化了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中调用的那个页面时。 Test1.aspx也被加载了。我想将1个值从父页面传递到子页面(Test1.aspx),通过该子页面填充文本框中的值。

请告诉我如何实现这一目标。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我会做一个正常的ajax请求,而不是使用iframe。

所以我会这样做:

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);
}