用脚本跳转
ScriptManager.Register....(...,,,"parent.window.location.href=url;",true);
不过要是浏览器禁用脚本这样就不行了。
我的做法的:
public partial class System_Logout : AdminPageHelper
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
#region 写入日志...
#endregion
//清空管理员登陆信息
...
//退出并刷新父窗口
JscriptOperator.RefreshParent(Page, "Login.aspx");
}
}
}
// 刷新父窗口
public static void RefreshParent(System.Web.UI.Page page, string url)
{
string strKey;
int i;
string js = @"<script>try{top.location=""" + url + @"""}catch(e){location=""" + url + @"""}</script>";
//注册脚本块的Key
strKey = System.DateTime.Now.ToString();
//循环,直至找到某个没被注册过的Key
for (i = 0; i < 10000; i++)
if (!page.ClientScript.IsClientScriptBlockRegistered(strKey + i.ToString()))
break;
page.ClientScript.RegisterClientScriptBlock(page.GetType(), Guid.NewGuid().ToString(), js);
}
个人觉得最简单的办法就是注销后让程序重新定向到你目前的窗口页面就可以了...
当然如果你觉得这样子不好的话,那我建议你可以使用javascript来处理就可以,也就是操作frame窗口了...