菜鸟笔记—控制器方法:提取Session中的数据、并进行分页操作

在正文之前有几点要说明,这是依靠Layui这个插件写的,可能并不适合其他的对象(肯定得改一部分),关于这个Layui表格的写法只能来劳烦各位去网上搜一下了,我只能说是在页面放置一个元素

然后通过 table.render() 方法指定该容器,绑定容器、设置数据接口、在表头设定对应的字段,这个容器中的表头差不多是个二维数组。

在视图中创建一个layui.table模块(推举使用方法渲染)待用,其中表格数据重载的数据接口(utl路径)暂时为空,接下来是今天的重点了:将Session中的数据提取出,并进行数据分页操作的控制器方法。它的重点在于提取session中数据,这里的分页操作只是一个预处理,具体如何将数据分页还得看视图layui.table模块的传来的参数“limit”与“limits”是如何设置的。

这是一个将Session中的数据提取出,然后进行分页操作的控制器方法(我复制的代码)。

public ActionResult SelectSessImportStudent(LayuiTablePage layuiTablePage){
	List<studentVo> listStudentVo = new List<studentVo>();
	if (Session["ImportExcel"]!=null) {
		listStudentVo = Session["ImportExcel"] as List<studentVo>;
	} 
	List<studentVo> listStu =listStudentVo.OrderByDescending(m=>m.studentID)
				.Skip(layuiTablePage.GetStartIndex())
				.Take(layuiTablePage.limit).ToList();
	LayuiTableData<studentVo> layuiTableData = new LayuiTableData<studentVo>(); 
	int totalRow = listStudentVo.Count();
	layuiTableData.data = listStu; 
	layuiTableData.count = totalRow;
	return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}

接下来看这些代码每一段都代表着什么。

public ActionResult SelectSessImportStudent(LayuiTablePage layuiTablePage)
{
	List<studentVo> listStudentVo = new List<studentVo>();
}

这一段代码它创建了一个代码路径名为SelectSessImportStudent的控制器方法,它以layui table组件分页要求(“LayuiTablePage”)封装参数“layuiTablePage”。参数“layuiTablePage”是一个集合。“listStudentVo”声明为对象列表并进行赋值,将它初始化为一个新实例,用来存放从Session中提取出来的数据

if (Session["ImportExcel"] != null){
	listStudentVo = Session["ImportExcel"] as List<studentVo>;
}

关于这一段代码我还存在一些疑问,就是这个“as”让我一头雾水,我只能认为是:当这个对象“Session[“ImportExcel”]”不为空时,将“Session[“ImportExcel”]”作为对象列表的类型数据存入对象” listStudentVo”。

写到这就已经将Session中的数据提取出来了,现在就是将数据进行分页的预处理

先创建一个新的对象列表命名为“listStu”,对“listStudentVo”获得的数据进行排序,按次序划分成包含指定数量的数据集合然后转换为List。(“OrderByDescending”根据键按降序对序列的元素排序,“Skip”:可以跳过序列中指定数量的元素,然后返回剩余的元素,“Take”从序列开头返回指定数量的连续的元素。)再计算数据总行数,将数据总行数放入“totalRow” ,实例化“LayuiTableData”,命名为“layuiTableData”。将“listStu”和“totalRow”分别存入变量“layuiTableData”属性“data”和“count”,把最后的结果返回到视图,即:



List<studentVo> listStu = listStudentVo.OrderByDescending(m => m.studentID)
			.Skip(layuiTablePage.GetStartIndex())
			.Take(layuiTablePage.limit)
			.ToList();
//实例化
LayuiTableData<studentVo> layuiTableData = new LayuiTableData<studentVo>();
int totaRow = listStudentVo.Count();
layuiTableData.data = listStu;
layuiTableData.count = totaRow;
return Json(layuiTableData, JsonRequestBehavior.AllowGet);

那么数据进行分页的预处理的部分也完成了。

发布了26 篇原创文章 · 获赞 4 · 访问量 3612

猜你喜欢

转载自blog.csdn.net/weixin_44545673/article/details/89631319