普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗体打开所指定的  URL 地址的。可是,假设细致分析一下,假设设置 form 元素的 target 属性,还是有办法打开新窗体的。以下就是能够採用的两种方法。

方法一:在server端设置 target 属性,这个方案也很适用于client不支持脚本的情况。代码例如以下:

<%@ 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">

protectedvoidPage_Load(objectsender, EventArgs e)
    {
        form1.Target ="_blank";
    }

protectedvoidButton1_Click(objectsender, 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>

办法二:採用client脚本的方法设置 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">

protectedvoidPage_Load(objectsender, EventArgs e)
    {
        Button1.Attributes.Add("onclick", "this.form.target='_newName'");
    }

protectedvoidButton1_Click(objectsender, 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">

protectedvoidPage_Load(objectsender, EventArgs e)
    {
      stringWindowName ="win"+System.DateTime.Now.Ticks.ToString();
      Page.RegisterOnSubmitStatement("js", "window.open('','"+WindowName +"','width=600,height=200')");
        form1.Target =WindowName;
    }

protectedvoidButton1_Click(objectsender, 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 两种方法打开一个新窗口相关推荐

  1. java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内

    Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...

  2. python关闭当前窗口_如何打开一个新窗口并关闭当前窗口?

    我想问一下,当我在标题中写到,如何打开一个新窗口并(完全)关闭当前窗口?在 有两个.py文件.它们彼此独立,也就是说,它们都可以独立运行.在 在我的app.py有一个按钮.如果单击该按钮,我希望关闭当 ...

  3. wxpython窗口跳转_WxPython-用按钮打开一个新窗口

    我正在创建一个界面,我需要打开一个新的窗口,点击一个按钮. 所以我创建了主窗口,创建了所有按钮,并在一个类下创建了新窗口.我不完全确定是否需要,但我也会包括这一部分信息.对python来说是新的,如果 ...

  4. JavaScript两种方法来定义一个函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. window.open window.showModelDialog 打开一个新窗口/子窗口中调用父窗口的方法

    window.open 只打开一个窗口是将 oNewWindow   =   window   .   open   (   sURL   ,   sName   ,   sFeatures   , ...

  6. RISC-V为中国MCU企业打开一个新窗口!

    随着物联网时代的真正到来,加之在2018年复杂的国际环境下,国产MCU迎来了最好的发展机遇,在这样的大形势下,国产MCU制定怎样的发展策略才能把握住这次机遇,加速自身发展,在众多竞争对手中脱颖而出? ...

  7. python关闭当前窗口 打开新窗口_关闭窗口,用PyQ在Python中打开一个新窗口

    我是PyQt5新手,想编写一个小程序 我在QT设计器中设计了两个窗口,并将它们转换成py脚本. 后来我把两者合并成一个文件(也许我的尝试完全错了-所以请纠正我) 当程序启动时,我会看到一个小窗口,上面 ...

  8. 两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)...

    例如:给定s1 = AABCD和s2 = BCDAA,返回1 给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 第一种: ...

  9. vue 内打开一个新窗口,带传参!

    有时在打开时会很卡,以下相对好一点: 在函数中 window.open(/newurl?index=${index} ); //带传参 2,页面上写一个空的a 动态拼接href, 如果你有更好的方式, ...

最新文章

  1. python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题
  2. Windows系统中文件解说
  3. attiny13a程序实例_ATtiny13A图文构成
  4. Java的异常跟踪栈
  5. NV21数据的镜像算法
  6. 你想要的宏基因组-微生物组知识全在这(2021.8)
  7. 营业执照在线生成_潍坊综合保税区发出全省首张覆盖四大市场主体类型的“微信秒批”营业执照...
  8. 2020蚂蚁森林自动收能量-保持更新
  9. React 16.x折腾记 - (7) 基于React+Antd封装聊天记录(用到React的memo,lazy, Suspense这些)
  10. bootstrap 页面垂直居中_bootstrap4如何实现div的水平居中以及垂直居中
  11. java项目小组项目总结报告_项目总结报告
  12. oracle判断为周一_oracle根据四位年周取当周周一的日期函数
  13. javaGUI绘图频闪
  14. 将系统(deepin15.11)装进U盘里面,在任何电脑上即插即用,使用自己的系统
  15. 钢琴曲欣赏[Beyond]
  16. 卡牌大师怎么玩_LOL钻石速成 卡牌大师崔斯特完美攻略
  17. AutoCAD_创建直线,圆弧,圆
  18. 淘宝镜像已经更改成Ruby China
  19. android中强行停止(forceStopPackage)对alarmManager、Receiver的影响
  20. 计算机统考试题结构,计算机考研统考科目考试内容和试卷题型结构

热门文章

  1. Android 团队早期员工解释 Android 哪里不如 iOS
  2. 统计学习方法---拉格朗日对偶新性
  3. 【灌水】一些奇妙的图片(持续更新)
  4. 38.6. Web IRC
  5. 实验5,利用三层交换机实现VLAN间路由
  6. 运行hadoop自带的wordcount例子
  7. select标签的使用
  8. Apache安装80端口被占用解决方案
  9. 06年编写的E阳指源码V1.7大放送
  10. CSDN网友挑选的2007年最有价值文章