2012-07-18 36 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

相关问题