DataTable插件 后台分頁 (服務器端分頁)


  <script type="text/javascript">
        var persontable;

  var personQueryCondition = {

       //需要的查詢條件放到這里來
            worksn: "",
            name: ""
        }

   $(document).ready(function () {

  persontable = $('#dataTables-custom').DataTable({
                dom: '<t><"bp"i><"bp"p><"bp"l>',  //需要導出excel時打開
                //dom: 'r<t><"dtpgclass"lp><"clear">',  //需要導出excel時打開
                aLengthMenu: [10, 20, 100, 10000],
                language: {
                    "sProcessing": "數據加載中...",
                    "sLengthMenu": "每頁顯示 _MENU_ 條記錄",
                    "sZeroRecords": "沒有匹配結果",
                    "oPaginate": {
                        "sFirst": "首頁",
                        "sPrevious": "上頁",
                        "sNext": "下頁",
                        "sLast": "末頁"
                    },
                    "sInfo": "當前顯示第 _START_ 至 _END_ 項,共 _TOTAL_ 項",
                    "sInfoEmpty": "當前顯示第 0 至 0 項,共 0 項"
                },  //提示信息

                serverSide: true,
                ajax: function (data, callback, settings) {
                    var sortinfo = DatablesExtend.getSortInfo(data, settings);
                    if (sortinfo != null) {
                        $.extend(personQueryCondition, sortinfo);
                    }
                    //排序屬性可通過data.order屬性獲得
                    $.ajax({
                        type: "POST",
                        url: LinkAddress.personQuery,
                        cache: false,  //禁用緩存
                        data: JSON.stringify(personQueryCondition),  //傳入組裝的參數
                        contentType: "application/json;",
                        dataType: "json",
                        beforeSend: function (xhr) {
                            xhr.setRequestHeader("Authorization", $.cookie('token'));
                        },
                        success: function (result) {
                            if (result.code == 0) {
                                callback({
                                    draw: data.draw,
                                    data: result.orgs,
                                    recordsTotal: result.total,
                                    recordsFiltered: result.total
                                });
                            }
                        }
                    });
                },
                columns: [
                    { "data": null, "orderable": false },
                    { "data": "worksn" },
                    { "data": "name" },
                    { "data": "sex" },
                    { "data": "irismodeStr" },
                    { "data": "orgs" },
                    { "data": null }
                ],
                order: [],
                columnDefs: [{
                    "targets": 3,
                    "render": function (data, type, row, meta) {
                        if (data == 0) {
                            return '男';
                        }
                        else {
                            return '女';
                        }
                    }
                }, {
                    "targets": 0,
                    "render": function (data, type, row, meta) {
                        return "<input type='checkbox' value='" + data.personid + "'>";
                    }
                }, {
                    "targets": -1,
                    "render": function (data, type, row, meta) {
                        var d = data.personid;
                        var da = JSON.stringify({ personid: data.personid, name: data.name, worksn: data.worksn });
                        return "<a href='#' data-page='showpersoninfo' data-param=" + d + " onclick='pageRedirect(this)'>  查看  </a><a href='#' data-page='editperson' data-param=" + d + " onclick='pageRedirect(this)'>  編輯  </a><a href='#' data-page='bindingdev' data-param=" + da + " onclick='pageRedirect(this)'>  關聯設備  </a><a href='#' data-param=" + d + " onclick='deletea(this)'>  刪除  </a>";
                    }
                }],
                deferRender: true,
                processing: true,
                scrollY: '50vh',
                scrollCollapse: false,
                scroller: {
                    loadingIndicator: true
                },
                searching: false,
                stateSave: false,
                paging: true,
                pageLength: 10,
                //select: true,
                buttons: [{
                    extend: 'excelHtml5',
                    title: 'Data export'
                }],
            });

       });

 

 

 

需要查詢的時候 只需要執行 : 把查詢條件更新一下,然后執行  persontable.ajax.reload(); 這句話就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM