关于浏览器后退时保存数据、
2010-03-17 08:58 北冥有魚,其名為坤、 阅读(1036) 评论(0) 编辑 收藏 举报
浏览器后退方法history.go(-1);和history.back()都可以将浏览器后退一个页面,可是如果要像百度做的那样返回时还要保持原来
所有的状态,也就是说,后退时保持原页面的所有数据,比如文本框,下拉框的值的话.那用这两个方法貌似是行不通的了.这两天写了个
session保存并取出数据的方法.如下:
首先是PageLoad里面的代码:
所有的状态,也就是说,后退时保持原页面的所有数据,比如文本框,下拉框的值的话.那用这两个方法貌似是行不通的了.这两天写了个
session保存并取出数据的方法.如下:
首先是PageLoad里面的代码:
代码
if (string.IsNullOrEmpty(Request["save"]))
{
//如果重新進入會員維護,則會員維護各界面的過濾條件設置為空
Dictionary<string, string> dt = new Dictionary<string, string>();
if (Session["MAH001_Status"] != null)
dt = Session["MAH001_Status"] as Dictionary<string, string>;
dt["MAH001"] = "";
Session["MAH001_Status"] = dt;
}
else
{
string[] arrCond = GetFormCondition();
int idx = 0;
if (arrCond.Length == 0)
idx = 0;
else if (!int.TryParse(arrCond[0], out idx))
idx = 0;
GridViewVip.PageIndex = idx;
txtName.Text = arrCond[1];
ddlSex.SelectedValue = arrCond[2];
ddlMarried.SelectedValue = arrCond[3];
//UCCity1.CountyValue = arrCond[4];
//UCCity1.CityValue = arrCond[5];
ddlStatus.SelectedValue = arrCond[6];
txtBCreateDate.Text = arrCond[7];
txtECreateDate.Text = arrCond[8];
}
{
//如果重新進入會員維護,則會員維護各界面的過濾條件設置為空
Dictionary<string, string> dt = new Dictionary<string, string>();
if (Session["MAH001_Status"] != null)
dt = Session["MAH001_Status"] as Dictionary<string, string>;
dt["MAH001"] = "";
Session["MAH001_Status"] = dt;
}
else
{
string[] arrCond = GetFormCondition();
int idx = 0;
if (arrCond.Length == 0)
idx = 0;
else if (!int.TryParse(arrCond[0], out idx))
idx = 0;
GridViewVip.PageIndex = idx;
txtName.Text = arrCond[1];
ddlSex.SelectedValue = arrCond[2];
ddlMarried.SelectedValue = arrCond[3];
//UCCity1.CountyValue = arrCond[4];
//UCCity1.CityValue = arrCond[5];
ddlStatus.SelectedValue = arrCond[6];
txtBCreateDate.Text = arrCond[7];
txtECreateDate.Text = arrCond[8];
}
以下是保存session和取出session分割的方法:
代码
/// <summary>
/// 獲取保存在Session中的當前書面的過濾條件
/// </summary>
/// <returns>MAH001.aspx書面的過濾條件數組</returns>
public string[] GetFormCondition()
{
string[] arrPart = new string[0];
object obj = Session["MAH001_Status"];
if (obj != null)
{
Dictionary<string, string> dt = obj as Dictionary<string, string>;
if (dt.ContainsKey("MAH001"))
{
string strCond = dt["MAH001"];
arrPart = strCond.Split("|".ToCharArray());
for (int i = 0; i < arrPart.Length; i++)
arrPart[i] = arrPart[i].Trim();
}
}
return arrPart;
}
/// <summary>
/// 將當前書面的過濾條件存入Session
/// </summary>
public void SetFormCondition()
{
string strST_01 = string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}", GridViewVip.PageIndex,
txtName.Text,
ddlSex.SelectedValue,
ddlMarried.SelectedValue,
UCCity1.CountyValue,
UCCity1.CityValue,
ddlStatus.SelectedValue,
txtBCreateDate.Text,
txtECreateDate.Text
);
Dictionary<string, string> dt = new Dictionary<string, string>();
if (Session["MAH001_Status"] != null)
dt = Session["MAH001_Status"] as Dictionary<string, string>;
dt["MAH001"] = strST_01;
Session["MAH001_Status"] = dt;
}
/// 獲取保存在Session中的當前書面的過濾條件
/// </summary>
/// <returns>MAH001.aspx書面的過濾條件數組</returns>
public string[] GetFormCondition()
{
string[] arrPart = new string[0];
object obj = Session["MAH001_Status"];
if (obj != null)
{
Dictionary<string, string> dt = obj as Dictionary<string, string>;
if (dt.ContainsKey("MAH001"))
{
string strCond = dt["MAH001"];
arrPart = strCond.Split("|".ToCharArray());
for (int i = 0; i < arrPart.Length; i++)
arrPart[i] = arrPart[i].Trim();
}
}
return arrPart;
}
/// <summary>
/// 將當前書面的過濾條件存入Session
/// </summary>
public void SetFormCondition()
{
string strST_01 = string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}", GridViewVip.PageIndex,
txtName.Text,
ddlSex.SelectedValue,
ddlMarried.SelectedValue,
UCCity1.CountyValue,
UCCity1.CityValue,
ddlStatus.SelectedValue,
txtBCreateDate.Text,
txtECreateDate.Text
);
Dictionary<string, string> dt = new Dictionary<string, string>();
if (Session["MAH001_Status"] != null)
dt = Session["MAH001_Status"] as Dictionary<string, string>;
dt["MAH001"] = strST_01;
Session["MAH001_Status"] = dt;
}