Asp.net实用技巧(1)
Asp.net实用技巧(1) 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
以前一直都是做WindowsForm,现在因为公司的项目需要,不得不研究WebForm,以上的几个技巧是这几天解决工作中的问题而总结出来的,如有更好的办法,还请留言告诉我,谢谢!
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。