在会话中保存整个页面的控件状态

时间:2017-05-22 05:06:21

标签: c# asp.net session

我有很多aspx页面,这是创建最终表单的过程。例如,

  

选择项目类型页面 - >选择项目颜色页面 - >选择商品数量页面 - >完整页面

每个页面都有一个下一个和一个上一个按钮,当我从第一页移动到第二页并且用户点击上一个按钮返回到第一页时,控件的状态将被重置,丢失所有用户的输入

我想过以这种方式保存会话中的控件:

protected void btn_Next_Click(object sender, EventArgs e)
{
    if (validateForm() == true)
    {
        Session["test1"] = RadioButtonList1;
        Response.Redirect("nextpage.aspx");
    }
}    

以这种方式加载:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        if (Session["test1"] != null)
            RadioButtonList1 = (RadioButtonList)Session["test1"];

        getInfo();
    }
}

但是,我选择了radiobuttonlist1中的第二项,当我移动到第二页并返回到第一项时,它没有加载radiobuttonlist1的确切状态。调试显示它进入了RadioButtonList1 = (RadioButtonList)Session["test1"];代码

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

为每个列表项设置value属性,并在类似

的会话中检索所选值
Session["test1"] = RadioButtonList1.SelectedItem.Value;

并在加载时

RadioButtonList1.SelectedValue = (String) Session["test1"];