您的位置:首页 > 编程语言 > ASP

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: