您的位置:首页 > 其它

在方法中实现页面跳转

2009-02-16 16:02 323 查看
一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗口打开所指定的 URL 地址的。但是,如果仔细分析一下,如果设置 form 元素的 target 属性,还是有办法打开新窗口的。下面就是可以采用的两种方法。

方法一:在服务器端设置 target 属性,这个方法也非常适用于客户端不支持脚本的情况。代码如下:

protected void Page_Load(object sender, EventArgs e)
{
form1.Target = "_blank";
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("http://dotnet.aspx.cc");
}

办法二:采用客户端脚本的方法设置 target 属性。代码如下:

protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", "this.form.target='_newName'");
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("http://dotnet.aspx.cc");
}

总结前两种方法都有一定的局限性,如:Button1放在UpdatePanel中,上述两种方式就不能打开新的页面。而且第一种方式会对整个页面都产生影响。

下面这种方式是一种比较理想的解决方式。

string jsStr1 = "<script>window.open('" + url+ "')</script>";
ScriptManager.RegisterStartupScript(this.paperlist_div, this.GetType(), "Alert", jsStr1, false);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: