通过Session记录数据
开发工具与关键技术:MVC
作者:盘洪源
撰写时间:2019年6月26日星期三
在做到一个页面的时候,我需要做到的一个功能就是通过点击子页面的表格行数据然后把数据赋给主页面的表格里,但主页面这个表格里的数据并不是保存到数据库,而是要通过点击一个保存按钮才将主页面的数据保存到数据库里,意思就是说一开始只是将数据库存放在页面上,供用户们看。所以,一开始的时候就不能通过直接保存到数据库中,这个时候就可以需要用到session来记录一下数据了。
首先要想清楚思路,我这个是表格的行单机事件一行一行的把数据添加上去的,有些项目的需求是需要通过批量把数据添加上去,其实都是差不多的。
首先表格的行单机事件
layuiTable.on('row(shopliulanID)',
function (obj) {
})
获取到行数据的ID,然后传到后台,然后将需要添加数据到主页面表格上的字段查询处理。
再声明实体类接受表格数据
List<Shop>
listShop = new List<Shop>();
Shop shop = new
Shop();
shop.CommodityDetailID
= list.CommodityDetailID;//商品明细ID
shop.CommodityNumber
= list.CommodityNumber;//商品编码
shop.ShopName =
list.ShopName;//商品编码
shop.StyleNumber
= list.StyleNumber;//款号
然后就将数据保存到实体类里,然后再放进session里
listShop.Add(shop);
Session["ListShops"]
= listShop;
但需要想我这个这里一样的需求的就需要前面更新session
因为如果不跟新的话就会每当你一次一次点击数据进来的时候第二条数据就会把第一条数据覆盖掉,从而达不到一条一条数据添加的效果,可能是session自带的效果吧。
if
(Session["ListShops"] != null)
{
listShop =
Session["ListShops"] as List<Shop>;
foreach (var item in
listShop)
{
}
}
为什么要判断这个session为什么不为空呢?因为要将第一条数据添加进来嘛,然后就是将session里的内容转回表格的格式,这个时候就可以在这个基础上添加数据了,然后再放进session里面就可以了
还有的就是清空session,这个不能忘了,在你需要清空session的地方记得把session清空掉,避免出现不必要的错误。