JQuery.dataTables的数据表格插件示例

基于Bootstrap样式:

https://datatables.net/examples/styling/bootstrap.html

中文社区:

http://datatables.club/

Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

  • 分页,即时搜索和排序
  • 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理
  • 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation
  • 各式各样的扩展: Editor, TableTools, FixedColumns ……
  • 丰富多样的option和强大的API
  • 支持国际化
  • 超过2900+个单元测试
  • 免费开源 ( MIT license )! 商业支持
  • 更多特性请到官网查看

引用说明:前提是已经引用了JQuery插件

仅使用原生表格,

[html]  view plain  copy
  1. <link href="~/Scripts/table/js/jquery.dataTables.min.css" rel="stylesheet" />  
  2. <script src="~/Scripts/table/js/jquery.dataTables.min.js"></script>  
更多是使用Bootstrap的样式:

[html]  view plain  copy
  1. @*注意,css样式需要更改,不能同时引用*@  
  2. @*<link href="~/Scripts/table/js/jquery.dataTables.min.css" rel="stylesheet" />*@  
  3. <script src="~/Scripts/table/js/jquery.dataTables.min.js"></script>  
  4. <link href="~/Scripts/table/js/dataTables.bootstrap4.css" rel="stylesheet" />  
  5. <script src="~/Scripts/table/js/dataTables.bootstrap.min.js"></script>  
简单Demo 实例:

更多Demo源代码:http://git.oschina.net/tiama3798/BootstrapBack_Demo/tree/JQuery.dataTables/

1.前台定义:

[html]  view plain  copy
  1. <table id="example1" class="table table-hover table-striped table-bordered">  
  2.     <thead>  
  3.         <tr>  
  4.             <th>编号</th>  
  5.             <th>姓名</th>  
  6.             <th>性别</th>  
  7.             <th>生日</th>  
  8.             <th>班级</th>  
  9.         </tr>  
  10.     </thead>  
  11. </table>  
[html]  view plain  copy
  1. $(function () {  
  2.     //注意方法名为DataTable  
  3.     var table = $('#example1').DataTable({  
  4.         processing: true,//是否使用进度条  
  5.         serverSide: true,//是否启用数据库加载  
  6.         lengthChange: true,//是否允许用户自定义显示页数据量  
  7.         lengthMenu: [  
  8.             5,10,15,30,50  
  9.         ],  
  10.         //指定语言包  
  11.         language: {  
  12.             url:'/scripts/table/js/lan.json'  
  13.         },  
  14.         ajax: {  
  15.             url: '/tableone/getlist',  
  16.             type: 'post'  
  17.         },  
  18.         //指定列绑定的字段  
  19.         columns: [  
  20.             { data: 'sno' },  
  21.             { data: 'sname' },  
  22.             { data: 'ssex' },  
  23.             { data: 'sbirthday' },  
  24.             { data: 'class' }  
  25.         ],  
  26.         pageLength:5,  
  27.         order: [  
  28.             [3, 'desc']  
  29.         ]  
  30.     });  
  31. });  
2.后台处理:

[csharp]  view plain  copy
  1. /// <summary>  
  2. /// 获取所有的学生列表json数据  
  3. /// </summary>  
  4. /// <param name="start">分的时候,数据的开始位置</param>  
  5. /// <param name="length">分页时,当前页数据量,如果不分页则length=-1</param>  
  6. /// <param name="draw">当前绘制的页索引</param>  
  7. /// <returns></returns>  
  8. public string GetList(int start, int length, int draw)  
  9. {  
  10.     length = length <= 0 ? 10 : length;  
  11.     draw = draw <= 0 ? 1 : draw;  
  12.   
  13.     /******组合查询实例********/  
  14.     var query = db.Queryable<student>();  
  15.     //配置json 序列化的时间文件  
  16.     db.SerializerDateFormat = "yyy年MM月dd日";  
  17.   
  18.     //筛选----编号或姓名  
  19.     string search = ReqHelper.GetString("search[value]").Trim();  
  20.     if (string.IsNullOrEmpty(search) == false)  
  21.     {  
  22.         query = query.Where(q => q.sno.Contains(search) || q.sname.Contains(search));  
  23.     }  
  24.     int allCount = query.Count();  
  25.   
  26.     //排序---根据前台参数排序  
  27.     //query = query.OrderBy("sbirthday desc");  
  28.     string orderColumnIndex = ReqHelper.GetString("order[0][column]");  
  29.     string orderDir = ReqHelper.GetString("order[0][dir]""asc");  
  30.     if (string.IsNullOrEmpty(orderColumnIndex) == false)  
  31.     {  
  32.         string orderColumnName = ReqHelper.GetString(string.Format("columns[{0}][data]", orderColumnIndex));  
  33.         query = query.OrderBy(orderColumnName + " " + orderDir);  
  34.     }  
  35.     else  
  36.     {  
  37.         query = query.OrderBy("sbirthday desc");  
  38.     }  
  39.   
  40.   
  41.     //分页  
  42.     List<student> list = query.Skip(start).Take(length).ToList();  
  43.     //前台的数据格式  
  44.     object result = new  
  45.     {  
  46.         draw = draw,  
  47.         recordsTotal = allCount,  
  48.         recordsFiltered = allCount,  
  49.         data = list  
  50.     };  
  51.     //使用SqlSugar序列化,处理日期格式  
  52.     return SqlSugar.JsonConverter.Serialize(result, true);  
  53.     //return result.ToJsonString();  
  54. }  
显示结果:


猜你喜欢

转载自blog.csdn.net/u014748374/article/details/80729165