public void btnBack_Click(object sender,EventArgs e) //返回到列表显示页 { my_common.retLastPage(this);//根据上面的累计次数,直接返回父页面,并保留其中的全部数据 }
3.为此,需要先建立通用的后台代码文件
文件my_common.cs
using System.Web.UI.WebControls; using System.Net; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls.WebParts; using System.Data.SqlClient; using System.Web.Configuration;
public class my_common { //这些方法都是静态的static ,类名直接调用,不用建立实例 static public void SetBackPageNo(System.Web.UI.Page Page) {//在页面的Page_Load 中调用,用全局的Session保存返回父页面的次数 //得到传来页面的文件名称,是唯一的,以示区别其它的Session string back_name=System.Web.HttpContext.Current.Request.Path; if (!Page.IsPostBack) { HttpContext.Current.Session[back_name] =0; //首次进入本页面,初始值设置为0 } //累计本页面刷新次数(首次和回发),以便后面得到返回次数, HttpContext.Current.Session[back_name]=Convert.ToInt32(HttpContext.Current.Session[back_name])+ 1; }
static public void retLastPage(System.Web.UI.Page Page) {//在页面的返回函数中调用,返回父页面实际执行的代码 //得到传来页面的文件名称,是唯一的,以示区别其它的Session string back_name=System.Web.HttpContext.Current.Request.Path; //根据上面的累计次数,一次直接返回父页面,并保留其中的全部数据 string num =HttpContext.Current.Session[back_name].ToString(); string str = "<scriptlanguage=javascript>history.go(-" + num +");</script>"; Page.RegisterClientScriptBlock("key", str); }