在方法中实现页面跳转

一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗口打开所指定的  URL 地址的。但是,如果仔细分析一下,如果设置 form 元素的 target 属性,还是有办法打开新窗口的。下面就是可以采用的两种方法。

方法一:在服务器端设置 target 属性,这个方法也非常适用于客户端不支持脚本的情况。代码如下:
  protected   void  Page_Load( object  sender, EventArgs e)
    {
        form1.Target 
=   " _blank " ;
    }

    
protected   void  Button1_Click( object  sender, EventArgs e)
    {
        Response.Redirect(
" http://dotnet.aspx.cc " );
    }

办法二:采用客户端脚本的方法设置 target 属性。代码如下:

     protected   void  Page_Load( object  sender, EventArgs e)
    {
        Button1.Attributes.Add(
" onclick " " this.form.target='_newName' " );
    }

    
protected   void  Button1_Click( object  sender, EventArgs e)
    {
        Response.Redirect(
" http://dotnet.aspx.cc " );
    }

 

总结前两种方法都有一定的局限性,如:Button1放在UpdatePanel中,上述两种方式就不能打开新的页面。而且第一种方式会对整个页面都产生影响。

下面这种方式是一种比较理想的解决方式。

string  jsStr1  =   " <script>window.open(' "   +  url +   " ')</script> " ;
 ScriptManager.RegisterStartupScript(
this .paperlist_div,  this .GetType(),  " Alert " , jsStr1,  false );

你可能感兴趣的:(页面跳转)