保留历史页面的实现方法:IFRAME页面套用
一、父页面设置
1、aspx页面
(1)增加javascript function
<script language="javascript" type="text/javascript">
//设置IFrame
function ShowLayer()
{
document.all.MyFormLayer.style.display='';
document.all.ParentFormLayer.style.height=0;
return false;
}
</script>
(2)将现有页面用div包括起来,位于form之下,注意
此部份控件不得设置
height
属性
<div id="ParentFormLayer" runat="server">
…
</div>
(3)新增用于显示下属子页面的div及iframe
<div id="MyFormLayer" runat="server" visible="false">
<iframe scrolling="no" frameborder="0" width="100%" height=800 id="IFRAME1" runat="server">
</iframe>
</div>
2、aspx.cs 代码
(1)增加方法
public static void CreateScript(System.Web.UI.Page mypage, string strScript, string ID)
{
string strscript = "<script language='javascript'>";
strscript += strScript;
strscript += "</script>";
ClientScriptManager csm = mypage.ClientScript;
if (!csm.IsStartupScriptRegistered(ID))
{
csm.RegisterStartupScript(mypage.GetType(), ID, strscript);
}
}
(2)于链接按钮的事件中增加代码
MyFormLayer.Visible = true;
IFRAME1.Attributes.Add("src", "P2W4.aspx");// P2W4
为跳转页面,可以加参数
CreateScript(Page, "ShowLayer();", "SHOW");
(3)于Page_Load()事件中增加代码
//
清除IFRAME1的属性,以避免其他按键引发的事件带出src所指的页面
IFRAME1.Attributes["src"] = null;
二、子页面设置
1、aspx页面:无须专门设置。
2、aspx.cs代码
(1)于返回按键的事件中增加代码
Response.Write("<script>parent.MyFormLayer.style.display = 'none';</script>");