如何从会话变量中检索值而不覆盖它? [英] How to retrieve values from session variables without overrides it?

查看:93
本文介绍了如何从会话变量中检索值而不覆盖它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  //  在创建页面中,此提交按钮可以多次单击,每次时间,会话将携带一个汽车对象 
public void btnSubmit_Click( object sender,EventArgs e){
string color = txtColor.txt;
string door = txtDoor.txt;
Car c = new Car();
c.color = color;
c.door = door;
会话[ Car] = c;
}

// 在主页面中,有一个要检索的按钮所有汽车对象,
// 当我点击检索按钮时,我想要检索所有汽车对象,
// 我的问题是会话对象覆盖以前的值,怎么能我改进了吗?
public void btnRetrive_Click( object sender,EventArgs e){
List< car> clist = new 列表< car> ();
if (会话[ Car]!= null
Car c = new Car();
c =(汽车)会话[ Car];
clist.Add(c);

}

解决方案

您不需要在会话中存储一辆车,而是需要存储一个列表你添加的它们。



 受保护  void  ButtonAdd_Click( object  sender,EventArgs e)
{
List< Car>汽车;

if (会话[ Car] == null
{
cars = new List< Car>();
会话[ Car] = cars;
}
else
{
cars =(List< Car>)会话[ Car];
}

Car car = new Car();

// 设置属性

cars。加入(车);
}

受保护 void ButtonGet_Click( object sender,EventArgs e)
{
if (Session [ Car] == null
{
// 没有存储汽车
return < /跨度>;
}

列表< Car> cars =(List< Car>)Session [ Car];

foreach (汽车汽车中)
{
// 此处代码
}
}


//In Create page , This Submit Button can click many times, each time, session will carry one car object
public void btnSubmit_Click(object sender, EventArgs e){
string color = txtColor.txt;
string door = txtDoor.txt;
Car c = new Car();
c.color = color;
c.door = door;
Session["Car"] = c;
}

//In The Master page , there is a button to retrieve all car objects,
//When i click retrieve button, i want to retrieve all the car object ,
//My problem is the session object override the previous values, How can i improve it ?
public void btnRetrive_Click(object sender, EventArgs e){
 List<car> clist = new List<car> ();
if(Session["Car"]!= null)
 Car c = new Car ();
 c = (Car)Session["Car"];
clist.Add(c);

}

解决方案

Rather than storing one car in the session you'll need to store a list of them that you add to.

protected void ButtonAdd_Click(object sender, EventArgs e)
{
    List<Car> cars;

    if (Session["Car"] == null)
    {
        cars = new List<Car>();
        Session["Car"] = cars;
    }
    else
    {
        cars = (List<Car>)Session["Car"];
    }

    Car car = new Car();

    // set properties

    cars.Add(car);
}

protected void ButtonGet_Click(object sender, EventArgs e)
{
    if (Session["Car"] == null)
    {
        // no cars stored
        return;
    }

    List<Car> cars = (List<Car>)Session["Car"];

    foreach(Car car in cars)
    {
        // code here
    }
}


这篇关于如何从会话变量中检索值而不覆盖它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆