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

本文共 2991 字,大约阅读时间需要 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
>

第二种弹出的方法能够參见老外的文章:

转载于:https://www.cnblogs.com/zfyouxi/p/4286670.html

你可能感兴趣的文章
winform 获取当前名称
查看>>
MyBatis笔记一:GettingStart
查看>>
查找不同的木棍
查看>>
面试题:顺时针打印矩阵
查看>>
DataSet、DataTable、DataRow、DataColumn区别及使用实例
查看>>
python 特殊方法
查看>>
Python3 练习笔记四
查看>>
装箱问题
查看>>
Android线程管理(一)——线程通信
查看>>
vim 使用技巧
查看>>
面向对象的特征有哪些方面?
查看>>
三月十一号
查看>>
国外免费空间
查看>>
构建linux内核树
查看>>
Linux C 信号处理
查看>>
第三次作业
查看>>
tomcat
查看>>
MUI开发注意事项
查看>>
elasticsearch摸石头过河——常用数据类型(二)
查看>>
scrum立会报告+燃尽图(第三周第三次)
查看>>