Jquery Datatables 请求参数及接收参数处理

Jquery Datatables 请求参数及接收参数处理


/**
 * Created by wb-wuyifu on 2016/8/9.
 */

/**
 * Created by wb-wuyifu on 2016/8/9.
 */

var $ = jQuery;

(function () {

    var App = function () {
        var self = this;


        self = $.extend(this, {

            api: {
                ajax_list: '*****'
                , url_monitor: '*****'
            },
            const:{
                gridIndex : 0,  // 表格索引序号
            },

            /**
             * 应用初始化
             */
            init: function () {
                self.initComponents();
            },

            /**
             *  组件初始化
             */
            initComponents: function () {

                // 初始化 表格
                self.jGrid = $("#searchGrid").DataTable({
                    ajax: {
                        url: self.api.ajax_list,

                        // 请求到的数据
                        dataSrc: function (data) {
                            // 请求到数据时 重置 索引号
                            self.const.gridIndex = 0;

                            $.extend(data, {
                                iTotalDisplayRecords: data.count,
                                iTotalRecords: data.count,
                            });

                            return data.rows;
                        },
                        dataType: 'json',
                        crossDomain: true,

                        // 延迟加载
                        deferRender: true,

                        // 提交参数
                        data: function (param) {

                            if (self.jGrid) {
                                param.pageSize = self.jGrid.page.len(); // 取得每页显示记录数返回给服务器
                            }

                            // 根据起始记录索引 重新计算页码
                            if(param.start){
                                param.pageNo = Math.ceil(param.start / (param.pageSize * 1.0)) + 1;
                            }else{
                                param.start = 1;
                            }

                            return param;
                        }
                    },
                    serverSide: true,
                    bServerSide :true,
                    ordering: false,
                    info: true,
                    lengthChange: true,
                    searching: false,
                    scrollCollapse: true,
                    pageLength: 30,
                    bAutoWidth: true,
                    stateSave :false,
                    // 自定义每页记录数 下拉菜单
                    lengthMenu: [
                        [10, 20, 30, 50, 100],
                        ['10', '20', '30', '50', '100']
                    ],
                    oLanguage: {
                        "sProcessing": "数据加载中……",
                        "sSearch": "快速检索:",
                        "sLengthMenu": "每页显示 _MENU_ 条",
                        "sInfo": "从 _START_ 到 _END_ 条,总共 _TOTAL_ 条记录",
                        "sZeroRecords": "没有记录",
                        "sInfoEmpty": "暂无记录",
                        "sInfoFiltered": "(一共有 _MAX_  条记录)",
                        "oPaginate": {
                            "sFirst": "首页",
                            "sPrevious": " 上一页 ",
                            "sNext": " 下一页 ",
                            "sLast": " 末页 "
                        }
                    },
                    columns: [
                        {
                            data: null,
                            defaultContent: '',
                            render: function (data, type, row) {
                                return ++self.const.gridIndex;
                            }
                        },
                        {
                            data: 'a',
                            defaultContent: ''
                        },
                        {
                            data: 'b',
                            defaultContent: ''

                        },
                        {
                            data: 'c',
                            defaultContent: ''

                        },
                        {
                            data: 'd',
                            defaultContent: ''

                        },
                        {
                            data: 'e',
                            render: function (data, type, row) {
                                var display = [
                                    row.a
                                    , ' / '
                                    , row.b
                                    , ' / <br/>'
                                    , row.c
                                ].join('');
                                return display;
                            },
                        },
 
                    ]
                });

                

            }

        });


        self.init();

    }.call();

})();



原文地址:https://www.cnblogs.com/wuyifu/p/5755624.html