Asp.net实用技巧新窗口中打开页面API

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

 1 #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 #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:

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值