欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery DataTable 使用

程序员文章站 2022-07-16 18:27:23
...

### ‘发克‘

## 后台参数说明:

* @param {object} oSettings dataTables settings object
*  @param {object} json json data return from the server.
*  @param {string} json.sEcho Tracking flag for DataTables to match requests
*  @param {int} json.iTotalRecords Number of records in the data set, not accounting for filtering
*  @param {int} json.iTotalDisplayRecords Number of records in the data set, accounting for filtering
*  @param {array} json.aaData The data to display on this page
*  @param {string} [json.sColumns] Column ordering (sName, comma separated)

sEcho:                 # 从第几条数据开始 
iTotalDisplayRecords:  # 前台总共有多少条数据能展现 
iTotalRecords:         # 数据库中,在没有过滤的情况下有多少条数据
aaData:                # 名字可以修改,同时修改 sAjaxDataProp这个参数

 

 

initDataTable: function (_table, _options, _aoColumns) {
        if (!$().dataTable) {
            return;
        }
        var tableInitialized = false;
        var ajaxParams = [];
        var tableOptions = $.extend({
            oLanguage: {
                sLengthMenu: "每页显示 _MENU_ 条记录",
                sZeroRecords: "对不起,查询不到任何相关数据",
                sInfo: "显示 _START_ 到 _END_ 条,共 _TOTAL_ 条记录",
                sInfoEmtpy: "找不到相关数据",
                sInfoFiltered: '', //"共有 _MAX_ 条记录"
                sProcessing: "正在加载中...",
                sSearch: "搜索",
                sInfoEmpty: "显示 0 到 0 条,共 0 条记录",
                oPaginate: {sPrevious: "上一页 ", sNext: "下一页"}
            },
            sDom: "<t<r><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>",
            sInfoEmpty: "没有找到数据~",
            sAjaxRequestGeneralError: "获取数据失败!",
            sEmptyTable: "没有数据",
            bAutoWidth: false,
            sScrollX: 'disabled',
            sScrollY: 'disabled',
            iDisplayLength: 25,
            bPaginate: true,
            bInfo: true,
            bFilter: false,
            bSort: false,
            bProcessing: true,
            sServerMethod: 'GET',
            bServerSide: true,
            sAjaxSource: '',
            aoColumns: _aoColumns || [],
            fnServerParams: function (aoData) {
                $.each(ajaxParams, function (i, param) {
                    aoData.push({name: param[0], value: param[1]});
                })
            },
            fnServerData: function (sUrl, aoData, fnCallback, oSettings) {
                oSettings.jqXHR = $.ajax({
                    url: sUrl,
                    data: aoData,
                    dataType: "json",
                    cache: false,
                    type: oSettings.sServerMethod,
                    success: function (json) {
                        if (json.sError) {
                            oSettings.oApi._fnLog(oSettings, 0, json.sError);
                        }
                        if (json.data) {
                            var data = json.data
                        } else {
                            var data = json
                        }
                        $(oSettings.oInstance).trigger('xhr', [oSettings, data]);
                        fnCallback(data);
                    },
                    error: function (xhr, error, thrown) {
                        if (error == "parsererror") {
                            oSettings.oApi._fnLog(oSettings, 0, "DataTables warning: JSON data from " +
                                "server could not be parsed. This is caused by a JSON formatting error.");
                        }
                    }
                });
            },
            updateTableParams: function (ajaxParams) {
                console.log('没有更新!');
            }
        }, _options || {});

        var dataTable = _table.dataTable(tableOptions);

        if (_table.data('update-btn')) {
            var $updateBtn = $(_table.data('update-btn'));
            $updateBtn.click(function () {
                console.log('更新');
                tableOptions.updateTableParams(ajaxParams);
                _table.fnDraw();
            });
        }

        return dataTable;
    }

 

function getBaseParams() {
                // 这里获取要传的参数
                return  {<name>: <alue>, ...}
            }

            var aoColumns = [
                {   mData: key, // 字段key
                    fnRender: function (oObj) {
                        return '<div><span>' +
                                '<input type="checkbox" class="checkbox-item" value="' + oObj['aData'][字段key] + '"></span></div>'
                    }
                },
                {mData: 字段key, sWidth: '20%'},
                {mData: 字段key}
                .......
            ];

            var $table = $('#TableListId');
            var baseUrl = $table.data('base-url');

            var updateTableParams = function (ajaxParams) {
                var params = getBaseParams()// 自定义获取想要传的参数方法;
                for (var name in params) {
                    ajaxParams.push([name, params[name]])
                }
            };

            initDataTable($table, {sAjaxSource: baseUrl, updateTableParams: updateTableParams}, aoColumns);

  

 

 

 

 

相关标签: DataTable