使用框架页面的跳转 转
2011-06-14 03:13
274 查看
转自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>
相关文章推荐
- IE (6-11)版本,在使用iframe的框架时,通过a标签javascript:; 和js跳转parent.location的时候 出现在新页面打开的情况
- 页面跳转类 使用框架集 必备类库
- 使用ifram框架造成页面跳转混乱小记录
- PHP使用frameset制作后台界面时,怎样实现通过操作左边框架,使右边框架中的页面跳转?
- 使用ifram框架造成页面跳转混乱小记录
- java web开发中,jsp使用了frameset框架,如何实现整个页面跳转,并且同一个表单中可以提交两个action
- servlet使用request跳转到jsp页面指定的框架
- 使用iframe框架时,子页面内跳转整个页面
- 使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
- Iframe浮动框架中使用超链页面跳转问题
- 使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
- 使用框架页面的跳转
- React Native之使用导航器跳转页面(react-navigation)
- AjaxPro框架使用整理(一) 一个简单的异步交互页面
- 使用iframe制作页面框架
- 使用storyboard实现页面跳转,简单的数据传递
- 使用伪静态实现页面跳转中遇到的问题
- 使用win32ole进行页面加载和跳转
- 使用Intent或Bundle传递参数,跳转页面。
- maven项目使用springmvc+mybatis 框架页面出现404错误