Asp.net实用技巧新窗口中打开页面API
2009-11-19 15:27
351 查看
1.在新窗口中打开页面
我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个
Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下:
1
OpenWindowInNewPage
#region
OpenWindowInNewPage
2
//
在新窗口中打开页面
3
public
static
void
OpenWindowInNewPage(Page curPage ,
string
destUrl)
4
{
5
string
scriptString
=
string
.Format(
"
<script language='JavaScript'>window.open('
"
+
"
{0}
"
+
"
','_new');<
"
,destUrl) ;
6
scriptString
+=
"
/
"
;
7
scriptString
+=
"
script>
"
;
8
if
(
!
curPage.IsStartupScriptRegistered(
"
Startup
"
))
9
{
10
curPage.RegisterStartupScript(
"
Startup
"
, scriptString);
11
}
12
}
13
#endregion
2.如果需要打开固定大小的页面,可以使用如下API
1
OpenNewFixSizePage
#region
OpenNewFixSizePage
2
//
打开一个固定大小的页面,如果fullScreen为true ,则high与width不起作用
3
public
static
void
OpenNewFixSizePage(Page page,
string
pageUrl,
bool
isCloseOldPage,
string
scriptName ,
bool
fullScreen ,
int
high ,
int
width)
4
{
5
StringBuilder StrScript
=
new
StringBuilder();
6
StrScript.Append(
"
<script language=javascript>
"
);
7
if
(fullScreen)
8
{
9
StrScript.Append(
"
width=screen.Width-10;
"
+
"
/n
"
);
10
StrScript.Append(
"
height=screen.height-60;
"
+
"
/n
"
);
11
}
12
else
13
{
14
StrScript.Append(
string
.Format(
"
width={0};
"
,width)
+
"
/n
"
);
15
StrScript.Append(
string
.Format(
"
height={0};
"
,high)
+
"
/n
"
);
16
}
17
18
StrScript.Append(
"
window.open('
"
+
pageUrl
+
"
','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=0,left=0,height='+ height +',width='+ width +'');
"
);
19
if
( isCloseOldPage )
20
{
21
StrScript.Append(
"
window.focus();
"
);
22
StrScript.Append(
"
window.opener=null;
"
);
23
StrScript.Append(
"
window.close();
"
);
24
}
25
StrScript.Append(
"
</script>
"
);
26
if
(
!
page.IsStartupScriptRegistered( scriptName ) )
27
{
28
page.RegisterStartupScript( scriptName, StrScript.ToString() );
29
}
30
}
31
#endregion
3.还有一种情况就是我们需要在关闭当前页面时,刷新当前页面的“父页面”,所谓“父页面”,就是Post本页面之前的一个页面。可以调用如下API:
RefreshFatherPage
#region
RefreshFatherPage
//
刷新Father页面
public
static
void
RefreshFatherPage(HttpResponse Response ,
bool
isCloseCurPage)
{
StringBuilder scriptString
=
new
StringBuilder();
scriptString.Append(
"
<script language = javascript>
"
);
scriptString.Append(
"
window.opener.refresh();
"
);
if
(isCloseCurPage )
{
scriptString.Append(
"
window.focus();
"
);
scriptString.Append(
"
window.opener=null;
"
);
scriptString.Append(
"
window.close();
"
);
}
scriptString.Append(
"
</
"
+
"
script>
"
);
Response.Write(scriptString.ToString());
}
/**/
/*
需要在Father页面的html中添加如下脚本(在Header中):
<script language="javascript">
function refresh()
{
this.location = this.location;
}
</script>
*/
#endregion
http://blog.csdn.net/zhuweisky/archive/2005/07/27/436421.aspx
我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个
Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下:
1
OpenWindowInNewPage
#region
OpenWindowInNewPage
2
//
在新窗口中打开页面
3
public
static
void
OpenWindowInNewPage(Page curPage ,
string
destUrl)
4
{
5
string
scriptString
=
string
.Format(
"
<script language='JavaScript'>window.open('
"
+
"
{0}
"
+
"
','_new');<
"
,destUrl) ;
6
scriptString
+=
"
/
"
;
7
scriptString
+=
"
script>
"
;
8
if
(
!
curPage.IsStartupScriptRegistered(
"
Startup
"
))
9
{
10
curPage.RegisterStartupScript(
"
Startup
"
, scriptString);
11
}
12
}
13
#endregion
2.如果需要打开固定大小的页面,可以使用如下API
1
OpenNewFixSizePage
#region
OpenNewFixSizePage
2
//
打开一个固定大小的页面,如果fullScreen为true ,则high与width不起作用
3
public
static
void
OpenNewFixSizePage(Page page,
string
pageUrl,
bool
isCloseOldPage,
string
scriptName ,
bool
fullScreen ,
int
high ,
int
width)
4
{
5
StringBuilder StrScript
=
new
StringBuilder();
6
StrScript.Append(
"
<script language=javascript>
"
);
7
if
(fullScreen)
8
{
9
StrScript.Append(
"
width=screen.Width-10;
"
+
"
/n
"
);
10
StrScript.Append(
"
height=screen.height-60;
"
+
"
/n
"
);
11
}
12
else
13
{
14
StrScript.Append(
string
.Format(
"
width={0};
"
,width)
+
"
/n
"
);
15
StrScript.Append(
string
.Format(
"
height={0};
"
,high)
+
"
/n
"
);
16
}
17
18
StrScript.Append(
"
window.open('
"
+
pageUrl
+
"
','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=0,left=0,height='+ height +',width='+ width +'');
"
);
19
if
( isCloseOldPage )
20
{
21
StrScript.Append(
"
window.focus();
"
);
22
StrScript.Append(
"
window.opener=null;
"
);
23
StrScript.Append(
"
window.close();
"
);
24
}
25
StrScript.Append(
"
</script>
"
);
26
if
(
!
page.IsStartupScriptRegistered( scriptName ) )
27
{
28
page.RegisterStartupScript( scriptName, StrScript.ToString() );
29
}
30
}
31
#endregion
3.还有一种情况就是我们需要在关闭当前页面时,刷新当前页面的“父页面”,所谓“父页面”,就是Post本页面之前的一个页面。可以调用如下API:
RefreshFatherPage
#region
RefreshFatherPage
//
刷新Father页面
public
static
void
RefreshFatherPage(HttpResponse Response ,
bool
isCloseCurPage)
{
StringBuilder scriptString
=
new
StringBuilder();
scriptString.Append(
"
<script language = javascript>
"
);
scriptString.Append(
"
window.opener.refresh();
"
);
if
(isCloseCurPage )
{
scriptString.Append(
"
window.focus();
"
);
scriptString.Append(
"
window.opener=null;
"
);
scriptString.Append(
"
window.close();
"
);
}
scriptString.Append(
"
</
"
+
"
script>
"
);
Response.Write(scriptString.ToString());
}
/**/
/*
需要在Father页面的html中添加如下脚本(在Header中):
<script language="javascript">
function refresh()
{
this.location = this.location;
}
</script>
*/
#endregion
http://blog.csdn.net/zhuweisky/archive/2005/07/27/436421.aspx
相关文章推荐
- Asp.net页面传值方法及实用技巧
- 在新窗口中打开页面 的asp.net后台代码
- ASP.NET页面传值的方法 和一些实用技巧
- ASP.NET中在新窗口中打开页面
- ASP.NET页面传值的方法 和一些实用技巧
- ASP.NET GridView单击选中行,双击打开详细页面(網上轉載)
- ASP.NET >> 实用技巧
- Asp.net 使用页面打开个人电脑上的应用程序
- [AaronYang原创] 大话ASP.NET MVC3+ (C#与DOM与JS页面上的很炫的技巧)
- asp.net IE7打开新窗口,并去掉旧窗口关闭提示
- ASP.NET的实用技巧详细介绍
- ASP.NET用Response.Write打开新窗口
- Asp.net打开新窗口或实现超级链接的多种方法!(转)
- Asp.net项目因Session阻塞导致页面打开速度变慢
- ASP.NET实用技巧(一)
- asp.net c# 打开新页面或页面跳转
- VS2005包加载错误,不能打开ASP.NET设计页面
- vs2013中如何打开asp.net配置页面
- asp.net和php中用window.open打开的窗口session丢失的解决办法
- 编程技巧 用Asp.net动态生成html页面