(MC嘉)多表查询

本文介绍在MVC框架下使用layui插件进行多表查询的方法,详细讲解了渲染表头、引用插件及控制器代码实现过程,适用于学生信息查询场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在MVC后台开发中,我们经常用到最基础的增、删、查、改,接下来我简单的介绍一下查询里面的多表查询。

下面我要查询的是学生的信息维护:

首先我们先把我们要查询的表格的表头构建出来,在查询过程中,我用到了layui框架,用来查询操作。

第一步就是引用layuiJS插件,不过在引用layui插件之前要先引用jquery插件,因为layui插件是基于jquery上进行开发的,引用如下:

<script src="~/Plugins/jquery-3.2.1.min.js"></script>

<script src="~/Plugins/layui/layui.all.js"></script>

第二步就是渲染表头

var layer, layuiTable;  用于加载layui中的弹出层模块和table表格模块

var TabStudent;  存放渲染后的表格对象

$(function () {

表格渲染

  layui.use( 'table', function () {

        layuiTable = layui.table;  table表格加载

        方法渲染

        TabStudent = layuiTable.render({

        elem: "#tabStudent"指定原始表格元素选择器(推荐ID选择器)

        url: "/Main/SelectStudentList",  数据接口

        cols: [[  设置表头。值是一个二维数组。方法渲染方式必填

        { title: '序号', type: 'numbers', field: 'studentID' },

        { title: '学生编号', field: 'studentNumber', align: 'center' },

        { title: '学生姓名', field: 'studentName', align: 'center' },

        { title: '班级', field: 'calssName', align: 'center' },

        { title: '性别', field: 'studentSex', align: 'center' },

        { title: '手机号', field: 'telephone', align: 'center' },

        { title: '身份证号', field: 'studentIDNum', align: 'center', },

        { title: '图片', align: 'center', templet: customStudentPicture },

        { title: '操作', align: 'center', templet: deleteStudent },

              ]],

              page: true

      });

   });

});

title:设定标题名称    

type:设定列类型,可选值有normal(常规列,无需设定)checkbox(复选框列)

radio(单选框列,layui 2.4.0 新增)numbers(序号列)space(空列)

field:设定字段名。字段名的设定非常重要,且是表格数据列的唯一标识

align:单元格排列方式可选值有:left(默认)、center(居中)、right(居右)

templet: 自定义列模板,模板遵循 laytpl 语法。这是一个非常实用的功能,你可借助它实现逻辑处理,以及将原始数据转化成其它格式,如时间戳转化为日期字符等

page:开启分页(默认:false) 注:从 layui 2.2.0 开始,支持传入一个对象,里面可包含 laypage 组件所有支持的参数(jump、elem除外)

效果图

控制器代码

public ActionResult SelectStudentList(LayuiTablePage layuiTablePage)

{

   var listStudent = from tbStudent in myModel.S_Student

   join tbClass in myModel.S_Class on tbStudent.classID equals tbClass.classID

   select new StudentVo

          {

           studentID = tbStudent.studentID,  学生ID

           classID = tbClass.classID,  班级ID                             

           studentNumber = tbStudent.studentNumber,  学生编号

           studentName = tbStudent.studentName,  学生姓名

           calssName = tbClass.calssName,  班级名称

           studentSex = tbStudent.studentSex, 性别

           telephone = tbStudent.telephone,  电话号码

           studentIDNum = tbStudent.studentIDNum,  身份证号

           studentPicture = tbStudent.studentPicture,  图片

           };

查询数据总条数

int intTotalRow = listStudent.Count();

分页查询用户数据

List<StudentVo> listStudents = listStudent

                         .Skip(layuiTablePage.GetStartIndex())

                         .Take(layuiTablePage.limit)

                         .ToList();

LayuiTableData<StudentVo> layuiTableData = new LayuiTableData<StudentVo>()

{

  count = intTotalRow,

  data = listStudents

};

   return Json(layuiTableData, JsonRequestBehavior.AllowGet);

}

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值