我正在使用jQuery Thickbox来显示允许用户上传文件的iframe(upload.aspx)。在upload.aspx背后的代码中,我通过发送:
完成Response.Redirect("blah.aspx");
我重定向到的页面是动态的,基于上传过程的结果。当这个重定向发生时,它发生在Thickbox内部,而不是我想要的父窗口。这是调用ASP.NET页面(home.aspx):
<a href="upload.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=300&width=500&modal=true" class="thickbox">Add New</a>
这是upload.aspx页面内的提交按钮:
<asp:Button ID="btnUpload" runat="server" Text="Upload"
OnClick="btnUpload_Click" OnClientClick="self.parent.tb_remove();" />
这是为了关闭模态窗口并将控制权发送到后面的代码来执行文件上传,处理等。
以前有没有人经历过这个?我如何在父窗口上发送重定向?
答案 0 :(得分:1)
您无法将重定向发送到父框架。
相反,您需要使用Javascript。
您可以在top.location = "whatever";
中的Javascript中编写<iframe>
。
答案 1 :(得分:0)
这是我最终做的事情。
将服务器标签添加到upload.aspx的主体元素:
<body id="mBody" runat="server">
删除了Response.Redirect,并附加了一些JavaScript以便在下次加载时运行。
HtmlGenericControl body = (HtmlGenericControl)Page.FindControl("mBody");
body.Attributes.Add("onload", "window.top.location.href='blah.aspx';");
并从按钮中删除了客户端点击:
<asp:Button ID="btnUpload" runat="server" Text="Upload"
OnClick="btnUpload_Click" />