`
java2000.net
  • 浏览: 654049 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Response.Redirect 打开新窗口的两种方法

阅读更多

一般情况下,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在新窗口打开

    标题中提到的“三种方法让Response.Redirect在新窗口打开”,涉及到的技术点是基于***的网页编程。***是微软推出的一个用于构建Web应用程序的框架。Response.Redirect是一个在***中常用的服务器端方法,用于将用户从...

    asp.net(c#)网页跳转七种方法

    这个方法可以打开一个新的页面,原窗口保留不变。 5.使用 JavaScript 进行跳转(替换原窗口) 使用 JavaScript 可以将用户从一个页面跳转到另一个页面,并将原窗口替换成新的页面。 Response.Write(...

    C#跳转网页7种方法

    若希望这两个方法的链接不在新窗口中打开,可以在被打开的网页中添加`&lt;base target="_self"&gt;`标签。 总结来说,选择哪种跳转方法取决于具体需求,如是否需要保留原始页面、是否在同一服务器内、是否需要用户交互等...

    asp.net网页跳转七种方法小结

    这两种对话框的差异在于交互性,`showModalDialog`会阻止其他窗口的操作直到被关闭,而`showModelessDialog`则允许同时进行多窗口操作。 总结来说,ASP.NET中的网页跳转方法各有特点,开发者应根据实际需求选择最...

    ASPNET跳转网页7种方法

    ` 这种方法通过 JavaScript 打开新窗口,原始窗口仍然存在,新窗口和原窗口可以同时显示。 5. **JavaScript 更改当前窗口位置** - `Response.Write("&lt;script language='javascript'&gt;window.location='Default2....

    ASP.NET页面刷新方法总结

    这种方式同样适用于需要自动刷新页面的场景,但相比前两种方法,它是在服务器端设置,因此更加隐蔽且不易被用户察觉。 #### 4. 使用HTML的`&lt;meta&gt;`标签 在HTML头部插入`&lt;meta&gt;`标签也可以实现页面定时刷新,示例...

    网站建设与管理 结业考试答案.pdf

    15. QueryString和Form数据类型:这两种方法都用于获取客户端数据,数据类型通常都是字符串。 16. HTML链接:在ASP中,`Response.Write`可以输出HTML代码,因此`&lt;a&gt;`标签会被浏览器解析为链接,并显示为“新浪”。 ...

    制作301重新定向

    - 这两种脚本语言的代码可直接放在页面顶部,用于在服务器端实现301重定向。 正确使用301重定向对于网站SEO至关重要,它能确保旧链接的权重传递给新链接,避免因URL改变导致的流量流失。在进行多域名管理或者网站...

    ASP.Net.技巧收集.pdf

    - **定义**: 打开新窗口的同时传递必要的参数。 - **实现方法**: 使用JavaScript的`window.open()`方法,并在URL中加入参数。 #### 16. 为按钮添加对话框 - **定义**: 当点击按钮时弹出对话框。 - **实现方法**: ...

    开始下载后如何重定向新页面

    首先,我们需要理解`Response.TransmitFile`和`Response.Redirect`这两个ASP.NET方法的作用。`Response.TransmitFile`是用来发送存储在服务器上的文件到客户端浏览器,通常是让用户下载。而`Response.Redirect`则...

    .net常用的技术介绍

    - **打开新窗口并传递参数**: ```csharp string url = "newWindow.aspx?param=value"; Response.Write("&lt;a href='" + url + "' target='_blank'&gt;Open New Window&lt;/a&gt;"); ``` - **自定义异常处理**: ```csharp ...

    2021信息工程Web开发技术复习概要.doc

    - 显示链接,ImageUrl设置图像,NavigateUrl设置链接地址,accessKey设置快捷键,Target设置新窗口打开。 21. **多选控件**: - 使用CheckBoxList,设置SelectionMode为Multiple。 22. **验证控件**: - 使用...

    asp.net窗体操作总结

    关闭当前窗口可以通过以下两种方式实现: - 直接调用`window.close()`方法,但浏览器可能会弹出确认对话框询问用户是否真的要关闭窗口。 - 使用`setTimeout()`函数设置一个定时器,在指定的延迟时间后关闭窗口,...

    [removed].href的用法(动态输出跳转)

    另一方面,如果需要刷新当前页面,有两种方法:`window.location.href = window.location.href` 和 `window.location.reload()`。两者都能实现刷新,但有细微差别。`window.location.href = window.location.href` ...

    2021-2022计算机二级等级考试试题及答案No.18402.docx

    - **解释**: 要在JavaScript中打开新窗口,应该使用`window.open()`方法。因此,正确答案是C,“open”。 #### 9. Java语言的特点 - **知识点**: Java是一种面向对象的编程语言,支持多线程、跨平台以及动态特性,...

    VS2005 GridView操作大全

    11. **弹出新页面/指定大小位置新窗口**:在Button的`OnClick`事件中,使用`Response.Redirect`或`Server.Transfer`方法打开新页面,通过JavaScript的`window.open()`设置窗口属性。 12. **固定表头**:利用CSS的`...

    2021-2022计算机二级等级考试试题及答案No.4120.docx

    21. JavaScript的window对象:window.open()方法用于打开新窗口或标签。 22. Session对象的超时时间:默认情况下,Session对象的超时时间是20分钟。 23. 局域网的概念:局域网(LAN)是局限于小范围内的网络,常...

    ExtAspNet_v2.3.2_dll

    -删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)...

    GridView控件72绝技

    12. **弹出新页面或窗口**:在链接按钮`LinkButton`的`OnClick`事件中,可以使用`Response.Redirect()`或`window.open()`来实现新页面或窗口的打开。 13. **固定表头**:使用CSS可以轻松实现表格的固定表头效果,只...

Global site tag (gtag.js) - Google Analytics