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

本文共 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://nntea.baihongyu.com/

你可能感兴趣的文章
Zabbix 监控Nginx连接的状态
查看>>
使用PhpStorm或WebStorm作为electron IDE
查看>>
mysql 分区之RANGE && HASH
查看>>
Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
查看>>
服务器架构之性能扩展-第三章squid(4)
查看>>
linux基础概念和个人笔记总结(5)
查看>>
linux top 命令详解
查看>>
以強勢接口支持<強龍/地頭蛇>分工模式
查看>>
【翻译】Sencha Ext JS 5发布
查看>>
站长福利:网站内容设置扫码打赏后才能看啦!
查看>>
温州动车事故中受伤的“我”,还好吗?
查看>>
lvm实现快速备份文件及数据库,lvm快照原理
查看>>
通常,人们会高估自己的学习能力
查看>>
设计模式之Factory Method(工厂方法)
查看>>
10K入职linux运维岗位小伙伴感谢信及面试经历分享
查看>>
Gartner:智能SOC/情报驱动的SOC的五大特征
查看>>
论企业信息化之三:服务和服务管理,价值和价值创造
查看>>
Operations Manager 2007 R2系列之安装部署
查看>>
系统管理员在企业中的职业定位及发展方向 连载(二)
查看>>
【闪存虚拟化】软件定义服务器闪存
查看>>