zoukankan      html  css  js  c++  java
  • ASP.NET MVC 5 ABP DataTables (一)

    1)ABP DataTables 应用(一)

    2)  ABP DataTables 应用(二)

    JS DataTables 这个组件绑定数据必须要有自己的返回数据格式。但是ABP返回的格式直接绑定是错误。重写ABP返回格式符合DataTables 要求 。

      /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="draw">请求次数计数器</param>
            /// <param name="recordsTotal">总共记录数</param>
            /// <param name="recordsFiltered">过滤后的记录数</param>
            /// <param name="data">数据</param>
            /// <param name="error">服务器错误信息</param>
            public JsonResult DataTablesResult<TEntity>(
                int draw,
                int recordsTotal,
                int recordsFiltered,
                IReadOnlyList<TEntity> data,
                string error = null,
                JsonRequestBehavior behavior = JsonRequestBehavior.DenyGet)
            {
                var result = new DataTablesResult<TEntity>(draw, recordsTotal, recordsFiltered, data);
                return DataTableJson(result, null, Encoding.UTF8, behavior);
            }
            public virtual JsonResult DataTableJson(
                object data,
                string contentType = null,
                Encoding contentEncoding = null,
                JsonRequestBehavior behavior = JsonRequestBehavior.DenyGet)
            {
    
                return new JsonResult()
                {
                    Data = data,
                    ContentType = contentType,
                    ContentEncoding = contentEncoding,
                    JsonRequestBehavior = behavior
                };
            }
        public class DataTablesParameters
        {
            /// <summary>
            ///     请求次数计数器
            /// </summary>
            public int Draw { get; set; }
    
            /// <summary>
            ///     第一条数据的起始位置
            /// </summary>
            public int Start { get; set; }
    
            /// <summary>
            ///     每页显示的数据条数
            /// </summary>
            public int Length { get; set; }
    
            /// <summary>
            ///     数据列
            /// </summary>
            public List<DataTablesColumns> Columns { get; set; }
    
            /// <summary>
            ///     排序
            /// </summary>
            public List<DataTablesOrder> Order { get; set; }
    
            /// <summary>
            ///     搜索
            /// </summary>
            public DataTablesSearch Search { get; set; }
    
            /// <summary>
            ///     排序字段
            /// </summary>
            public string OrderBy
            {
                get
                {
                    return Columns != null && Columns.Any() && Order != null && Order.Any()
                        ? Columns[Order[0].Column].Data
                        : string.Empty;
                }
            }
    
            /// <summary>
            ///     排序模式
            /// </summary>
            public DataTablesOrderDir OrderDir
            {
                get
                {
                    return Order != null && Order.Any()
                        ? Order[0].Dir
                        : DataTablesOrderDir.Desc;
                }
            }
        }
    DataTablesParameters
    public class DataTablesResult<TEntity>
        {
    
            /// <summary>
            ///     构造函数
            /// </summary>
            /// <param name="draw0">请求次数计数器</param>
            /// <param name="recordsTotal0">总共记录数</param>
            /// <param name="recordsFiltered0">过滤后的记录数</param>
            /// <param name="data0">数据</param>
            public DataTablesResult(int draw0, int recordsTotal0, int recordsFiltered0, IReadOnlyList<TEntity> data0)
            {
                draw = draw0;
                recordsTotal = recordsTotal0;
                recordsFiltered = recordsFiltered0;
                data = data0;
            }
    
            /// <summary>
            ///     构造函数
            /// </summary>
            /// <param name="error0">服务器错误信息</param>
            public DataTablesResult(string error0)
            {
                error = error0;
            }
    
            /// <summary>
            ///     请求次数计数器
            /// </summary>
            public int draw { get; set; }
    
            /// <summary>
            ///     总共记录数
            /// </summary>
            public int recordsTotal { get; set; }
    
            /// <summary>
            ///     过滤后的记录数
            /// </summary>
            public int recordsFiltered { get; set; }
    
            /// <summary>
            ///     数据
            /// </summary>
            public IReadOnlyList<TEntity> data { get; set; }
    
            /// <summary>
            ///     错误信息
            /// </summary>
            public string error { get; set; }
        }
    DataTablesResult
    /* dataTables列内容居中 */
    .table { width: 100% !important;}
    .table > tbody > tr > td {overflow: hidden; text-overflow: ellipsis;}
    .table > thead > tr > th {text-align: center;}
    .table > tbody > tr > td {text-align: center;}
    /* dataTables表头居中 */
    .dataTables_scrollHead, .dataTables_scrollBody { border-bottom: 0px !important;}
    .dataTables_scrollHeadInner, #InspectionRecordTable {border-bottom: 1px solid #e7ecf1 !important;margin: 0 !important;}
    .scrolltable {height: 350px;overflow-x: hidden;overflow-y: auto;width: 100%;}
    CSS
     var table = $('#MI_InspectionPlanTable');
       table.dataTable({
                // Internationalisation. For more info refer to http://datatables.net/manual/i18n
                "language": {
                    "url": '/Scripts/datatables/DataTable_language.json'
                },
                "bStateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态  
                "sScrollX": "100%", //DataTables的宽   
                "aLengthMenu": [10, 20, 60], //更改显示记录数选项  
                "iDisplayLength": 10, //默认显示的记录数  
                "bAutoWidth": true, //是否自适应宽度
                "bPaginate": true, //是否显示(应用)分页器  
                "bInfo": false, //是否显示页脚信息,DataTables插件左下角显示记录数  
                "sPaginationType": "full_numbers", //详细分页组,可以支持直接跳转到某页  
                "bSort": false, //是否启动各个字段的排序功能  
                "ordering": false,
                "bFilter": false, //是否启动过滤、搜索功能 
                "bProcessing": false, //DataTables载入数据时,是否显示‘进度’提示 
                //当前这个进度显示有问题 需要调整
                "serverSide": true,//true代表后台处理分页,false代表前台处理分页 
                "dom": "<f<t>ip>",
                "ajax": {
                    "url": "/main/InspectionPlan/GetMI_InspectionPlanAll",
                    "type": "post",
                    "data": function (d) {
                        d.ModelType = 0;
                        d.FileType = fileType;
                    },
                    "error": handleAjaxError()
    
                },
                "columnDefs":
                [
    
                    {
                        "targets": 0,
                        "render": function (data, type, meta) {
                            return '<input type="checkbox" class="checkboxes"  name="selected" value="' + meta.Id + '"  id="checkbox" />';
                        },
                        "bSortable": false
                    }
                ],
                "columns": [
                    {
                        "sWidth": "30px"
                    },
                    { "data": "FileName", "bSortable": false },
                    { "data": "FileSize", "bSortable": false },
                    { "data": "Remarks", "bSortable": false },
                    { "data": "CreateTime", "bSortable": false },
                    {
                        "sDefaultContent": '<div class="input-group-btn">
                                        <button type="button" class="btn green-sharp Edit" title="编辑">
                                        <i class="fa fa-edit"></i>
                                        </button><span style="margin-left: 5px;"></span>     
                                        <button type="button" class="btn blue-steel Delete" title="删除">
                                        <i class="fa fa-trash-o"></i>
                                        </button>
                                        </div>',
                        "sWidth": "100px",
                        "bSortable": false
                    }
                ]
            });
    JS
    {
      "sProcessing": "正在加载数据...",
      "sLengthMenu": "显示_MENU_条 ",
      "sZeroRecords": "没有您要搜索的内容",
      "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
      "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
      "sInfoFiltered": "(全部记录数 _MAX_  条)",
      "sEmptyTable": "<div style='margin:0 auto;text-align:center;'>没有数据</div>",
      "sInfoPostFix": "",
      "sLoadingRecords": "载入中...",
      "sSearch": "搜索",
      "sUrl": "",
      "oPaginate": {
        "sFirst": "首页",
        "sPrevious": "上页 ",
        "sNext": " 下页 ",
        "sLast": "尾页 "
      },
      "oAria": {
        "sSortAscending": "以升序排列此列",
        "sSortDescending": "以降序排列此列"
      }
    }
    DataTables 汉化

  • 相关阅读:
    C# MVC跳转
    从字符串中提取数字
    使用Node.js+Socket.IO搭建WebSocket实时应用
    C# 计算当前时间距离今晚00:00:00还有多少分多少秒
    C#错误异常列表
    HTTP请求报文和HTTP响应报文
    Selenium2(webdirver)入门之环境搭建(Java版)
    mysql grant ,User,revoke
    mysql 用drop和delete方法删除用户的区别
    [MySQL]
  • 原文地址:https://www.cnblogs.com/w2011/p/6922669.html
Copyright © 2011-2022 走看看