ASP.net的一点小技巧【转自qddn】

原创 2006年06月06日 17:12:00

ASP.net在做一些项目时,可能会遇到一鞋小麻烦,下面是几个使用ASP.net的小技巧:

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

 1OpenWindowInNewPage#region OpenWindowInNewPage
 2        //在新窗口中打开页面
 3        public static void OpenWindowInNewPage(Page curPage ,string destUrl)
 4        {            
 5            string scriptString = string.Format("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

 1OpenNewFixSizePage#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( "" );
 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( "" );
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(
"");
            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中):
         
        function refresh()
        {
            this.location = this.location;
        }
        
         
*/

        
#endregion

关于第3点有一些补冲。

可以定义一个JS文件增加下面的函数。

function OpenerReload()
{
 if (opener && !opener.closed)
 {
  opener.Reload();
 }
}

Reload()函数就是子窗体内的脚本函数,这样在子窗体的脚本函数里可以调用任何服务器端的函数,就不需要在not Ispostback里面处理刷新的机能了。

例如使用

 function Reload() { document.forms(0).btnSearch.click(); }

父窗体调用的部分就可以写成Opener.OpenerReload();


ASP.net的一点小技巧【转自qddn】

ASP.net在做一些项目时,可能会遇到一鞋小麻烦,下面是几个使用ASP.net的小技巧:1.在新窗口中打开页面    我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我...
  • zyc21st
  • zyc21st
  • 2006年03月31日 09:32
  • 637

ASP.net的一点小技巧【转自qddn】

ASP.net在做一些项目时,可能会遇到一鞋小麻烦,下面是几个使用ASP.net的小技巧:1.在新窗口中打开页面    我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我...
  • qdzx2008
  • qdzx2008
  • 2006年03月23日 19:01
  • 1970

在ASP.NET使用javascript的一点小技巧

在ASP.NET使用javascript的一点小技巧作者:zsxfbj [原作] ASP.NET的跟踪模式详解 [2004-8-9 12:04:46] 在ASP.NET使用javascript的一点小...
  • xuandhu
  • xuandhu
  • 2004年10月15日 17:08
  • 648

在ASP.NET使用javascript的一点小技巧

我们在进行ASP.NET开发时,经常会用到一些javascript脚本,比如: private void Button1_Click(object sender, System.EventArgs e...
  • ehung
  • ehung
  • 2004年12月23日 12:54
  • 624

Linux小技巧收集

 原贴地址:http://blog.chinaunix.net/u/26011/showart.php?id=364841 ...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年08月28日 12:53
  • 8282

编程的一点小技巧

考虑下面一段 c++ 创建并初始化一个数组的代码 int a[10]; for(int i=0;i
  • buyulian
  • buyulian
  • 2018年01月30日 15:27
  • 12

mysql使用小技巧

1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat() 将取到的值用逗号连接,可以这么用:select group_concat(distinct id) fr...
  • lu_wei_wei
  • lu_wei_wei
  • 2016年05月03日 10:34
  • 2589

Excel 的一点小技巧

以前很少用Excel。这两天突然对自己的财务状况有点担心,所以想统计一下每月的花费情况——钱到底都是从那跑了,不要每个月的工资白领了,还不知去向。所以就准备用Excel做一个统计表。在这个过程中,对E...
  • g_smile
  • g_smile
  • 2010年09月24日 13:12
  • 276

一点vc的小技巧

  本人最近在写一个图书馆管理系统,由于要对窗口进行一些改变,所以去网上查了下资料,一查,有一位仁兄已经将一些小技巧整理了出来,在此和大家分享,也便于以后自己阅览。Visual C++6.0(5.0)...
  • wzmlove007
  • wzmlove007
  • 2009年10月26日 19:31
  • 354

编程中常用的小技巧

1.python中list的合并:使用切片,在L1的最后直接添加L1[[-1,-1] = L2#将L2中的所有元素添加到L1中 2.python中list去重list(set(L))#转化成集合去重,...
  • ali197294332
  • ali197294332
  • 2016年06月13日 21:33
  • 532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: ASP.net的一点小技巧【转自qddn】
举报原因:
原因补充:

(最多只允许输入30个字)