以编程方式从iframe回发到父页面

时间:2010-03-09 17:43:50

标签: .net asp.net vb.net

我有一个aspx页面,在该页面中我有一个iframe。在iframe中,我在代码中做了一些事情,当它完成时,我想从aspx做回发。

换句话说,是否可以以编程方式从iframe后面的代码到父页面进行回发?

我认为可以使用“ClientScript.GetPostBackClientHyperlink(New Control(),String.Empty)”进行回发,但这只会为我认为的iframe做回发。

4 个答案:

答案 0 :(得分:6)

我以两种不同的方式做到了这一点:

1)在父页面上有一个隐藏按钮。当你需要它回发时,你注册了一些导致点击该按钮的javascript:

父HTML:

<asp:Button ID="Button1" runat="server" Text="" Style="background-color: Transparent;
                                color: inherit; border-style: none;" />

Iframe Code Behind:

ClientScript.RegisterStartupScript(Me.GetType(), "RefreshParent", "<script type='text/javascript'>var btn = window.parent.document.getElementById('Button1');if (btn) btn.click();</script>")

2)从代码后面注册一个客户端脚本,该脚本在父页面的表单上调用post。 JS就像:

window.parent.document.forms[0].submit();

答案 1 :(得分:1)

假设页面位于同一个域中,您可以发出触发外页回发的Javascript。

答案 2 :(得分:1)

答案 3 :(得分:0)

  

是否可以进行回发   以编程方式编写   iframe到父页面?

是。要从后面的代码自动发布表单,您需要注册一个启动javascript,它将提交表单。您可以将表单的操作指定为指向父级的aspx页面。

  

但这只会做回发   iframe我认为。

要使表单提交父窗口而不是当前窗口,可以在窗体中添加“_target”属性并将其设置为“_parent”

如果你想通过模拟按钮点击来触发回发,你可以像SLaks指出的那样。