一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗口打开所指定的 URL 地址的。但是,如果仔细分析一下,如果设置 form 元素的 target 属性,还是有办法打开新窗口的。下面就是可以采用的两种方法。
方法一:在服务器端设置 target 属性,这个方法也非常适用于客户端不支持脚本的情况。代码如下:
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
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");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body id="b" runat="server">
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="打开新窗口或者新 Tab " />
</form>
</body>
</html>
办法二:采用客户端脚本的方法设置 target 属性。代码如下:
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
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");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body id="b" runat="server">
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="打开新窗口或者新 Tab " />
</form>
</body>
</html>
上面两种方法中的 target 属性可以采用任何合法的名称,但要注意,如果相同名称的窗口已经打开,则新窗口会在已经存在名称的窗口里打开。
更新:如果需要设置弹出窗口的宽度和高度,可以修改为下面的方法:
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string WindowName = "win" + System.DateTime.Now.Ticks.ToString();
Page.RegisterOnSubmitStatement("js", "window.open('','" + WindowName + "','width=600,height=200')");
form1.Target = WindowName;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("http://dotnet.aspx.cc");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body id="b" runat="server">
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="打开新窗口或者新 Tab " />
</form>
</body>
</html>
另外一种弹出的方法可以参见老外的文章:
http://weblogs.asp.net/infinitiesloop/archive/2007/09/25/response-redirect-into-a-new-window-with-extension-methods.aspx
分享到:
相关推荐
标题中提到的“三种方法让Response.Redirect在新窗口打开”,涉及到的技术点是基于***的网页编程。***是微软推出的一个用于构建Web应用程序的框架。Response.Redirect是一个在***中常用的服务器端方法,用于将用户从...
这个方法可以打开一个新的页面,原窗口保留不变。 5.使用 JavaScript 进行跳转(替换原窗口) 使用 JavaScript 可以将用户从一个页面跳转到另一个页面,并将原窗口替换成新的页面。 Response.Write(...
若希望这两个方法的链接不在新窗口中打开,可以在被打开的网页中添加`<base target="_self">`标签。 总结来说,选择哪种跳转方法取决于具体需求,如是否需要保留原始页面、是否在同一服务器内、是否需要用户交互等...
这两种对话框的差异在于交互性,`showModalDialog`会阻止其他窗口的操作直到被关闭,而`showModelessDialog`则允许同时进行多窗口操作。 总结来说,ASP.NET中的网页跳转方法各有特点,开发者应根据实际需求选择最...
` 这种方法通过 JavaScript 打开新窗口,原始窗口仍然存在,新窗口和原窗口可以同时显示。 5. **JavaScript 更改当前窗口位置** - `Response.Write("<script language='javascript'>window.location='Default2....
这种方式同样适用于需要自动刷新页面的场景,但相比前两种方法,它是在服务器端设置,因此更加隐蔽且不易被用户察觉。 #### 4. 使用HTML的`<meta>`标签 在HTML头部插入`<meta>`标签也可以实现页面定时刷新,示例...
15. QueryString和Form数据类型:这两种方法都用于获取客户端数据,数据类型通常都是字符串。 16. HTML链接:在ASP中,`Response.Write`可以输出HTML代码,因此`<a>`标签会被浏览器解析为链接,并显示为“新浪”。 ...
- 这两种脚本语言的代码可直接放在页面顶部,用于在服务器端实现301重定向。 正确使用301重定向对于网站SEO至关重要,它能确保旧链接的权重传递给新链接,避免因URL改变导致的流量流失。在进行多域名管理或者网站...
- **定义**: 打开新窗口的同时传递必要的参数。 - **实现方法**: 使用JavaScript的`window.open()`方法,并在URL中加入参数。 #### 16. 为按钮添加对话框 - **定义**: 当点击按钮时弹出对话框。 - **实现方法**: ...
首先,我们需要理解`Response.TransmitFile`和`Response.Redirect`这两个ASP.NET方法的作用。`Response.TransmitFile`是用来发送存储在服务器上的文件到客户端浏览器,通常是让用户下载。而`Response.Redirect`则...
- **打开新窗口并传递参数**: ```csharp string url = "newWindow.aspx?param=value"; Response.Write("<a href='" + url + "' target='_blank'>Open New Window</a>"); ``` - **自定义异常处理**: ```csharp ...
- 显示链接,ImageUrl设置图像,NavigateUrl设置链接地址,accessKey设置快捷键,Target设置新窗口打开。 21. **多选控件**: - 使用CheckBoxList,设置SelectionMode为Multiple。 22. **验证控件**: - 使用...
关闭当前窗口可以通过以下两种方式实现: - 直接调用`window.close()`方法,但浏览器可能会弹出确认对话框询问用户是否真的要关闭窗口。 - 使用`setTimeout()`函数设置一个定时器,在指定的延迟时间后关闭窗口,...
另一方面,如果需要刷新当前页面,有两种方法:`window.location.href = window.location.href` 和 `window.location.reload()`。两者都能实现刷新,但有细微差别。`window.location.href = window.location.href` ...
- **解释**: 要在JavaScript中打开新窗口,应该使用`window.open()`方法。因此,正确答案是C,“open”。 #### 9. Java语言的特点 - **知识点**: Java是一种面向对象的编程语言,支持多线程、跨平台以及动态特性,...
11. **弹出新页面/指定大小位置新窗口**:在Button的`OnClick`事件中,使用`Response.Redirect`或`Server.Transfer`方法打开新页面,通过JavaScript的`window.open()`设置窗口属性。 12. **固定表头**:利用CSS的`...
21. JavaScript的window对象:window.open()方法用于打开新窗口或标签。 22. Session对象的超时时间:默认情况下,Session对象的超时时间是20分钟。 23. 局域网的概念:局域网(LAN)是局限于小范围内的网络,常...
-删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)...
12. **弹出新页面或窗口**:在链接按钮`LinkButton`的`OnClick`事件中,可以使用`Response.Redirect()`或`window.open()`来实现新页面或窗口的打开。 13. **固定表头**:使用CSS可以轻松实现表格的固定表头效果,只...