1.在新窗口中打开页面
我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下:
1
OpenWindowInNewPage#regionOpenWindowInNewPage
2
//在新窗口中打开页面
3
publicstaticvoidOpenWindowInNewPage(PagecurPage,stringdestUrl)
4

{
5
stringscriptString=string.Format("<scriptlanguage='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

OpenWindowInNewPage#regionOpenWindowInNewPage2
//在新窗口中打开页面3
publicstaticvoidOpenWindowInNewPage(PagecurPage,stringdestUrl)4


{5
stringscriptString=string.Format("<scriptlanguage='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#regionOpenNewFixSizePage
2
//打开一个固定大小的页面,如果fullScreen为true,则high与width不起作用
3
publicstaticvoidOpenNewFixSizePage(Pagepage,stringpageUrl,boolisCloseOldPage,stringscriptName,boolfullScreen,inthigh,intwidth)
4

{
5
StringBuilderStrScript=newStringBuilder();
6
StrScript.Append("<scriptlanguage=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

OpenNewFixSizePage#regionOpenNewFixSizePage2
//打开一个固定大小的页面,如果fullScreen为true,则high与width不起作用3
publicstaticvoidOpenNewFixSizePage(Pagepage,stringpageUrl,boolisCloseOldPage,stringscriptName,boolfullScreen,inthigh,intwidth)4


{5
StringBuilderStrScript=newStringBuilder();6
StrScript.Append("<scriptlanguage=javascript>");7
if(fullScreen)8


{9
StrScript.Append("width=screen.Width-10;"+"/n");10
StrScript.Append("height=screen.height-60;"+"/n");11
}12
else13


{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#regionRefreshFatherPage
//刷新Father页面
publicstaticvoidRefreshFatherPage(HttpResponseResponse,boolisCloseCurPage)

{
StringBuilderscriptString=newStringBuilder();
scriptString.Append("<scriptlanguage=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中):
<scriptlanguage="javascript">
functionrefresh()
{
this.location=this.location;
}
</script>
*/
#endregion
以前一直都是做WindowsForm,现在因为公司的项目需要,不得不研究WebForm,以上的几个技巧是这几天解决工作中的问题而总结出来的,如有更好的办法,还请留言告诉我,谢谢!
博客围绕JavaScript展开,介绍了在点击Button时打开新页面的方法,将其封装成API。还提及打开固定大小页面的API,以及在关闭当前页面时刷新“父页面”的API,满足不同应用场景需求。
74

被折叠的 条评论
为什么被折叠?



