我有一个aspx页面,在该页面中我有一个iframe。在iframe中,我在代码中做了一些事情,当它完成时,我想从aspx做回发。
换句话说,是否可以以编程方式从iframe后面的代码到父页面进行回发?
我认为可以使用“ClientScript.GetPostBackClientHyperlink(New Control(),String.Empty)”进行回发,但这只会为我认为的iframe做回发。
答案 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)
How to make cross page Postback的文章 或者访问此http://www.devx.com/dotnet/Article/33835/0/page/2
如何使页面从框架回发:
答案 3 :(得分:0)
是否可以进行回发 以编程方式编写 iframe到父页面?
是。要从后面的代码自动发布表单,您需要注册一个启动javascript,它将提交表单。您可以将表单的操作指定为指向父级的aspx页面。
但这只会做回发 iframe我认为。
要使表单提交父窗口而不是当前窗口,可以在窗体中添加“_target”属性并将其设置为“_parent”
如果你想通过模拟按钮点击来触发回发,你可以像SLaks指出的那样。