datatable基本使用


  基本使用

var t = ("#asset_list").DataTable({
                paging: true,//分页
                pagingType: "full_numbers", //定义翻页组件的样式
                scrollX: "",    //宽度没有滚动条
                stateSave: false, //状态保存
                autoWidth: false, //自控制宽度
        // {#            serverSide: true,//分页,取数据等等的都放到服务端去#}
                processing: true, //载入数据的时候是否显示 载入中
                searching: true, //搜索
                pageLength: 10, //首次加载的数据条数

                ordering: false,    //排序操作在

                "aaSorting": [[4, 'desc']],

                ajax: {     //类似jquery的ajax参数,基本都可以用。
                    type: "post",   //后台指定了方式,默认get,外加datatable默认构造的参数很长,有可能超过get的最大长度。
                    url: "/asset/get_asset_list/",
                    dataSrc: "data",    //默认data,也可以写其他的,格式化table的时候取里面的数据
                },
                columns: [//对应上面thead里面的序列
                    { "data": null},
                    { "data": null},
                    { "data": "asset_id"},
                    { "data": "sn" },
                    { "data": "serial_name" },
                    { "data": "asset_type" },
                    { "data": "ip" },
                    { "data": "idc_name" },
                    { "data": "idc_jg" },
                    { "data": "projectname" },
                    { "data": "application" },
                    { "data": "module" },
                    { "data": "status" },
                    { "data": "linkman" },
                    { "data": "memo" },
                    { "data": "admin" },
                    { "data": "details" }
                ],

                "columnDefs": [
                    {
                        "targets": [ 3,9,12,14,15 ],
                        "visible": false    //隐藏列
                    },
                    {
                        targets: 2,
                        className: 'display_n'
                    },
                    {
                        targets: 1,
                        "render": function ( data, type, row, meta ) {
                            //<input type="checkbox">
                            return '<input type="checkbox" >';
                        }
                    },
                    {
                        targets: -1 ,//targets last column, use 0 for first column
                        className: 'pointer',
                        "data": "download_link",
                        "render": function ( data, type, row, meta ) {
                        //return '<a class="btn-link" href="'+row.id+'" target="_blank">'+ data +'</a>';
                         return '<a class="btn-link" href="'+row.asset_id+'">'+ data +'</a>';
                        }

                    },
                    {
                        "searchable": false,
                        "orderable": false,
                        "targets": 0
                    }
                ],
                "order": [[1, 'asc']],

                language: {
                     lengthMenu: '显示条数:<select class="form-control">' + '<option value="5">5</option>' + '<option value="10">10</option>' + '<option value="20">20</option>' + '<option value="30">30</option>' + '<option value="40">40</option>' + '<option value="50">50</option>' + '</select>',//左上角的分页大小显示。
                     search: '<span class="">搜索:</span>', //右上角的搜索文本,可以写html标签
                     processing: "载入中", //处理页面数据的时候的显示
                     paginate: { //分页的样式文本内容。
                         previous: "上一页",
                         next: "下一页",
                         first: "首页",
                         last: "尾页"
                    },
                    zeroRecords: "没有这条记录",//table tbody内容为空时,tbody的内容。
                    //下面三者构成了总体的左下角的内容。
                    info: "第_PAGE_/_PAGES_ 页,共 _TOTAL_ 条数据",//显示第_START_ 到第 _END_ 左下角的信息显示,大写的词为关键字。
                    infoEmpty: "0条记录",//筛选为空时左下角的显示。
                    infoFiltered: "筛选之后得到 _TOTAL_ 条,初始_MAX_ 条"//筛选之后的左下角筛选提示(另一个是分页信息显示,在上面的info中已经设置,所以可以不显示),
                },

                "initComplete":function () {    //表格加载完成之后执行

                    $("tbody").find("a").click(function () {
                        event.stopPropagation();
                    });
                    //end
                }
            });

 

 

添加索引

$(document).ready(function() {
    var t = $('#example').DataTable({
        "columnDefs": [{
            "searchable": false,
            "orderable": false,
            "targets": 0
        }],
        "order": [[1, 'asc']]
    });
    t.on('order.dt search.dt',
    function() {
        t.column(0, {
            search: 'applied',
            order: 'applied'
        }).nodes().each(function(cell, i) {
            cell.innerHTML = i + 1;
        });
    }).draw();
});

 

获取数据

//获取表格所有数据
var dt = $("#table1").dataTable();
var nTrs  = dt.fnGetNodes();    //fnGetNodes获取表格所有行,nTrs[i]表示第i行tr对象
for(var i = 0; i < nTrs.length; i++){
    var choice_data = dt.fnGetData(nTrs[i]);
    console.log(choice_data);  //fnGetData获取一行的数据
    console.log(choice_data.("name"));    //获取某一行某一列数据
}

//获取表格选中行数据
var dt = $("#table1").dataTable();
var nTrs = dt.fnGetNodes();     //fnGetNodes获取表格所有行,nTrs[i]表示第i行tr对象
for(var i = 0; i < nTrs.length; i++){
   if($(nTrs[i]).find("input:checkbox").prop("checked") == true){   //找出被选中的那行
       var choice_data = dt.fnGetData(nTrs[i]);
       console.log(choice_data);    //fnGetData获取一行的数据
   }
} 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM