开发工具与关键技术:正则表达式
作者:文泽钦
撰写时间:2019年4月27日
上一个文献已经写了表格初始化的方法了,现在写初始化表格的数据查询,写查询的方法前要写一个分页类,先添加一个类:
public class LayuiTablePage { }
需要用上的数据:
public class LayuiTablePage
{
/// page 代表当前页码
public int page { get; set; }//get写入;set写出
/// limit 代表每页数据量
public int limit { get; set; }
/// 分页开始序号
public int GetStartIndex()//开始数据
{ return (page - 1) * limit;}
/// 分页结束序号
public int GetEndIndex()//结束数据
{ return page * limit - 1;}
}
新建一张表,把页面上所有需要显示的信息存放在里面,也是新建一个实体类:
public class employeeVo:PW_Employee
{
//继承,包含了员工表所有的信息
//大部分数据都在员工表,所以继承员工表
//在这个表的基础上把后面的数据加上
// 部门名称
public string DeoartmentName { get; set; }
// 职位名称
public string PositionName { get; set; }
// 账号
public string UserNuber { get; set; }
}
控制器查询的方法,涉及到多张表的查询,有员工表、部门、表还有职位表连表查询,查询前先开启分页,不可能把数据库查出的值一次全部显示出来的,写完分页后,再写查询方法:
public ActionResult selectStudentAll(LayuiTablePage layuiTablePage)//LayuiTablePage分页
{
//连表查询,从数据库中把员工表的数据查询出来
List<employeeVo> listEmployee = (from tbEmployee in MyModels.PW_Employee
//连表查询,连接数据库中的部门表,员工表的部门id等于部门表的部门id
join tbDepartment in MyModels.SYS_Department on tbEmployee.DepartmentID
equals tbDepartment.DepartmentID
//连表查询,连接数据库中的职位表,员工表的职位id等于职位表的职位id
join tbPosition in MyModels.SYS_Position on tbEmployee.PositionID equals tbPosition.PositionID
//orderby排序,根据员工表里的员工id倒叙排序,确保新增的员工信息在页面第一条显示
orderby tbEmployee.EmployeeID descending
//把所查询到的数据存放到这一张新表上
select new employeeVo {
//页面上需要显示的信息
EmployeeNumber=tbEmployee.EmployeeNumber,//编号
EmployeeName=tbEmployee.EmployeeName,//姓名
Phone=tbEmployee.Phone,//电话
Cellphone=tbEmployee.Cellphone,//手机
DeoartmentName=tbDepartment.DeoartmentName,//部门
PositionName=tbPosition.PositionName,//职位
Address=tbEmployee.Address,//地址
Remark=tbEmployee.Remark,//备注
EmployeeID=tbEmployee.EmployeeID//员工id
}).ToList();//数据类型
//计算查询到的数据总条数
int totalRow = listEmployee.Count();
//对数据进行分页,不让数据全部在同一页上全部显示
List<employeeVo> dbEmployeeVo = listEmployee//显示总条数
.Skip(layuiTablePage.GetStartIndex())//从第一条开始
.Take(layuiTablePage.limit)//每页显示的条数
.ToList();
//实例化,把计算出的总条数,以及提取出来的dbEmployeeVo赋值给LayuiTableData,再返回值
LayuiTableData<employeeVo> layuiTableData = new LayuiTableData<employeeVo>();
//LayuiTableData等于totalRow这个值
layuiTableData.count = totalRow;
layuiTableData.data = dbEmployeeVo;
//返回页面
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}
要注意页面传过来的值要与数据库查出来的名称或者ID一样,否则控制器接收不到值;例如:EmployeeNumber=tbEmployee.EmployeeNumber, EmployeeNumber是表格初始化时传过来的值,所以表格初始化时这个值的命名要与数据库中的值命名一样。
确保每个初始化的命名与数据库的一样就相等,这样控制器就能把页面上的需要显示的值回填了: