Asp.net实用技巧(1)
Asp.net实用技巧(1) 1.在新窗口中打开页面
我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下:
1
OpenWindowInNewPage#region OpenWindowInNewPage2
//在新窗口中打开页面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
#endregion2.如果需要打开固定大小的页面,可以使用如下API
1
OpenNewFixSizePage#region OpenNewFixSizePage2
//打开一个固定大小的页面,如果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
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
#endregion3.还有一种情况就是我们需要在关闭当前页面时,刷新当前页面的“父页面”,所谓“父页面”,就是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,以上的几个技巧是这几天解决工作中的问题而总结出来的,如有更好的办法,还请留言告诉我,谢谢!