关于将一个表格数据存入Session中然后提取显示到另一个表格中

关于将一个表格数据存入Session中然后提取显示到另一个表格中

一、存储数据到Session

  1. 获取当前表格选中的数据的方法

1.1多条数据使用layui中的获取选中行数据的方法checkStatus();

var checkStatus = table.checkStatus('BrowseTable');

1.2单条点击选中 row 单击 rowDouble 双击 方法相同

 

table.on('row(ReceiptsTable)', function (obj) {

                    var data = obj.data;

                    console.log(data);


                })

  1. 将获取的数据提交方法有多种这里采用post请求

$.post("/DailyRoutine/Receptionist/ receptionSession", { datas: data }, function (data) {})

post(a,b,c) a=url b=键:值(键=控制器接收值得参数名 值=要传递到控制器的数据) c=回调方法 当请求提价后才执行的方法;

  1. 控制将传递过来的数整理并添加到Session中

3.1 声明参数接收数据 注意:页面传递的数据是一条或多条完整的数据所以要用list接收数据

public ActionResult receptionSession(List<receptionCargo> datas) {}

receptionCargo是一个实体类 里面定义了需要用到的所字段

3.2实例化对象列表

List<receptionCargo> listreceptionCargo = new List<receptionCargo>();

3.3判断原有Session中有无数据,有数据就不可以直接赋值否则会覆盖掉原有数据,

if (Session["selectCommodity"] != null)

            {

               listreceptionCargo = Session["selectCommodity"] as List<receptionCargo>;

            }

3.4实例化实体类

receptionCargo ReceptionCargo = new receptionCargo();

3.5 循环赋值

for (var i = 0; i < datas.Count(); i++)

                {

//页面的传递的字段一定要对应实体类的字段,否则值会为NULL

                  ReceptionCargo.Color = datas[i].Color;//商品颜色

                  ReceptionCargo.CommodityCode = datas[i].CommodityCode;//商品编码

                  ReceptionCargo.id = datas[i].id;//商品id

                  ReceptionCargo.CommodityName = datas[i].CommodityName;//商品名称

                  ReceptionCargo.Discount = datas[i].Discount;//销售折扣

                  ReceptionCargo.Size = datas[i].Size;//尺码-名

                  ReceptionCargo.TagPrice = datas[i].TagPrice;//吊牌价

                  ReceptionCargo.Unit = datas[i].Unit;//单位-名

                  //将数据都放入列表对象

listreceptionCargo.Add(datas[i]);

                }

3.6将列表对象保存到Session中

Session["selectCommodity"] = listreceptionCargo;

存储完成了接下来是提取斌返回到表格

二、提取Session数据并返回导表格中

1.因为提取数据不需要获取数据所以直接重载表格 最好写在提交方法的回调方法中

  table.reload('SellTable', {

                        url: '/DailyRoutine/Receptionist/receptionDetail'

                    });

2.控制器调用分页

public ActionResult receptionDetail(LayuiTablePage layuiTablePage){}

2.1 判断session是否为空,不为空将类表对象的结构改成session相同结构

if (Session["selectCommodity"] != null)

            {

                listResult = Session["selectCommodity"] as List<receptionCargo>;

            }

2.2 用强类型列表 声明变量并赋值为,对象列表的根据id升序排序并分页后创建出来的列表

            List<receptionCargo> listCommdity = listResult

                    .OrderBy(p => p.id)

                    .Skip(layuiTablePage.GetStartIndex())

                    .Take(layuiTablePage.limit)

                    .ToList();

 

2.3实例化实体类用于返回数据

 

            LayuiTableData<receptionCargo> layuiTableData = new LayuiTableData<receptionCargo>();

            layuiTableData.count = listResult.Count;

            layuiTableData.data = listCommdity;

 

 

2.4将数据返回

            return Json(layuiTableData, JsonRequestBehavior.AllowGet);

添加前

添加后

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页