博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Response.Redirect 打开新窗体的两种方法
阅读量:7061 次
发布时间:2019-06-28

本文共 2940 字,大约阅读时间需要 9 分钟。

普通情况下,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
"
>
    
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
>

办法二:採用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
"
>
    
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://ejyll.baihongyu.com/

你可能感兴趣的文章
人机交互新体验魅族15触感引擎引热议
查看>>
Dynamics 365拟2019年春落地中国,微软智能云三驾马车聚齐
查看>>
Python加入计算机二级考试行列了!要考些什么?难道你还在观望吗
查看>>
国内贸易实有市场主体居各行业首位
查看>>
视频和源码详解html5加原生js打造大型商城刮刮卡特效
查看>>
百度研究院迎来9位世界级AI科学家!
查看>>
Scala 与设计模式(二):Builder 创建者模式
查看>>
UI设计师SVG动画进阶篇——路径变形动画(下篇)
查看>>
你不知道的 npm init
查看>>
UIView不可不知的秘密
查看>>
More-iOS中的Ping
查看>>
React 重要的一次重构:认识异步渲染架构 Fiber
查看>>
TensorFlow笔记(2)——利用TensorFlow训练一个最简单的一元线性模型
查看>>
TensorFlow笔记(4)——优化手写数字识别模型之代价函数和拟合
查看>>
微服务java_b2b商城系统_java商城源码100%开源适合2次开发-(七)高可用的分布式配置中心(Spring Cloud Config)...
查看>>
Swift5.0新特性更新
查看>>
React Redux 中间件思想遇见 Web Worker 的灵感(附demo)
查看>>
超可爱的颜文字,我要放到代码里❛‿˂̵✧
查看>>
枚举 学习笔记
查看>>
使用生成器把Kafka写入速度提高1000倍G
查看>>