使用框架页面的跳转 转

转自http://www.cnblogs.com/solomon_Blog/

"

在Asp.NET使用框架页面的时候,常常在框架内部页面中进行跳转,但是我们常常也会遇到这样的一种情况:即我们需要跳转的不只是部分框架的页面,而是将整个主页面进行跳转,比如在框架左侧页面中操作的时候,需要跳转到登陆页面等等。 

    这种情况下的跳转其实跟HTML中进行主框架的跳转是一样的,在早期使用HTML的时候,我们使用Javascript,在Asp.net中,后台代码可以为:



     Response.Write("<script>parent.location='login.apsx';</script>");   

     Response.Write("<script>top.location='login.apsx';</script>");   

     Response.Write("<script>parent.document.location.href='login.apsx';</script>");



那当我们不仅需要转移框架页面,还需要传递参数,那么传参跳转的语句显然既可以使用QueryString在跳转的URL后面加“?XX='XXXXX'”即可,也可以使用Session来实现。



问题解决了,我们来引申一下:



    如果我们要跳转的不是主框架页面了,而是右边甚至于是框架中的任意一个页面,那么该如何呢?



答案其实也很简单,我们再来仔细研究下我们上面列出来的三条跳转语句,都是使用的获取Documnet中的父层的框架对象,然后进行跳转,那我们其实只要使用我们熟悉的Javascript获取到相应的要跳转的框架对象进行跳转,至于传参嘛,那就跟上面是完全一样了哦!  

        我们来看下示例:



Response.Write"<script   language='javascript'>window.location='left.aspx';parent.rightframeName.location='right.aspx'</script>"); 

    实现跳转了吗?是的,恭喜了,但是这样OK了吗?还没有...   

    我们发现,这样进行跳转的时候,左边的框架确实是跳转了,但是右边的框架也随即跟着刷新了,右边页面中所作的一些改动也都被重置掉了,这可不是我们想要的结果,那么怎么办?再往下看:  

    我们都知道,在HTML时代是不存在这个问题的,为什么呢?嘿嘿,因为那是HTML控件,使用的JavaScript客户端代码,因此它不会回发服务器,那么我们是不是可以也使用HTML控件,然后再在它的onclick时间中实现呢?  当然是可以的,你不要跟我说你用的是服务端控件,你要在后台代码里实现哦,在LOAD时间里AddAttributes方法添加一个onclick事件就OK了的。  

       我在网上赚了一圈,还发现一个牛人提出来的方法,看完之后不得不提一下HTML中的target ,具体内容?白度上自己摆一把去~  

  我这里就把牛人的方案照搬过来了阿:



  假设左框架为   frmLeft,右框架为   frmRight  

   

  <frame   name="frmLeft"   src="left.aspx">  

  <frame   name="frmRight"   src="right.aspx">  

   

  关于左右框架间的数值传递有几种方法:  

   

  第一种:不提交服务器,在客户端实现  

   

  left.aspx   中的代码  

   

  <INPUT   onclick="HandToRight()"   id="Button1"   value="Button"   name="Button1">  

  <script   language=javascript>  

  <!--  

  function   HandToRight()  

  {  

        var   para   =   document.getElementByIdx("TextBox1").value;  

        window.parent.frmRight.location.replace("right.aspx?p="+para);  

  }  

  //-->  

  </script>  

   

  此方法通过   URL   传参数,不安全  

   

   

  第二种,用   POST   的方法,left.aspx   的代码,注意   form   的   target    

   

  <form   id="Form1"   method="post"   runat="server"   target   ="frmRight">  

   

  编写提交按钮事件  

  Session["ID"]=TextBox1.Text;  

  Response.Redirect   ("right.aspx");  

   

  此方法较安全,但多一个往返   

"

第一次接触到框架, 贴一个自己的例子, 可行

  
    
<% @ Page Language = " C# " AutoEventWireup = " true " CodeBehind = " AdminDefault.aspx.cs " Inherits = " shangchengf.Admin.AdminDefault " %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< frameset cols ="100,*" frameborder ="no" border ="0" framespacing ="0" >
< frame src ="left.aspx" name ="leftFrame" scrolling ="No" noresize ="noresize" id ="leftFrame" title ="leftFrame" />
< frame src ="Adminhome.aspx" name ="Adminhome" id ="Adminhome" title ="Adminhome" />
</ frameset >
< noframes ></ noframes >
< body >
< form id ="form1" runat ="server" >
< div >

</ div >
</ form >
</ body >
</ html >

  
    
<% @ Page Language = " C# " AutoEventWireup = " true " CodeBehind = " left.aspx.cs " Inherits = " shangchengf.Admin.left " %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< script type ="text/javascript" >
function check1(){
parent.document.getElementById(
" Adminhome " ).src = " Adminhome.aspx "
}
function check2(){
parent.document.getElementById(
" Adminhome " ).src = " UserManagement.aspx "
}
function check3(){
parent.document.getElementById(
" Adminhome " ).src = " GeneralEditor.aspx "
}
function check4(){
parent.document.getElementById(
" Adminhome " ).src = " NewsEditor.aspx "
}
function check5(){
parent.document.getElementById(
" Adminhome " ).src = " ProductEditor.aspx "
}
function check6(){
parent.document.getElementById(
" Adminhome " ).src = " OrderEdit.aspx "
}
function check7(){
parent.document.getElementById(
" Adminhome " ).src = " ProfileEdit.aspx "
}

function check8(){
parent.document.location.href
= ' ../User/Default.aspx '
}
</ script >
< form id ="form1" runat ="server" >
< div >
< div >
< a href ="#this" onclick ="javascript:check1()" > 后台首页 </ a >
< a href ="#this" onclick ="javascript:check2()" > 用户管理 </ a >
< a href ="#this" onclick ="javascript:check3()" > 常识编辑 </ a >
< a href ="#this" onclick ="javascript:check4()" > 新闻编辑 </ a >
< a href ="#this" onclick ="javascript:check5()" > 产品编辑 </ a >
< a href ="#this" onclick ="javascript:check6()" > 订单编辑 </ a >
< a href ="#this" onclick ="javascript:check7()" > 简介编辑 </ a >
< a href ="#this" onclick ="javascript:check8()" > 返回前台 </ a >
</ div >
</ div >
</ form >
</ body >
</ html >

你可能感兴趣的:(框架)