如何从会话变量中检索值而不覆盖它? [英] How to retrieve values from session variables without overrides it?
本文介绍了如何从会话变量中检索值而不覆盖它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
// 在创建页面中,此提交按钮可以多次单击,每次时间,会话将携带一个汽车对象
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屋!
查看全文