温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

DataTable常用API

发布时间:2020-07-12 20:28:08 来源:网络 阅读:6575 作者:wq2010feng 栏目:web开发

1.初始化datatables

myTable=$('.table-sort').DataTable({
    serverSide: true,//开启后台数据获取
    processing: true,//显示加载提示
    pageLength: 100,//每页默认显示条目
    lengthChange: true,//开启每页显示数量选择
    lengthMenu: [10,50,100,150,300,500,1000,5000],//每页可显示条目选择列表
    ordering: true,//开启排序
    bStateSave: true,//状态保存
    searching:true,//开启搜索
    language: {
        search: "搜索: "//搜索提示字符
    },
    ajax: {
        url: '数据获取地址',
        type: 'POST',//获取方式
        data: {
            自定义参数名:参数值
        }
    },
    fnCreatedRow: function(nRow, aData, iDataIndex) {
        $(nRow).addClass('text-c');//全局增加样式
    },
    columns: [
        {
            data:'数据名',
            className:‘要增加的样式’,
            render: function ( data, type, row ) {
                //处理数据后需要使用return返回
                return data;
            }
        },
    ]
})

2.使用ajax从后台获取数据,并携带自定义参数

    myTable.DataTables({
            serverSide: true,
            ajax: {
                url: '数据获取地址',
                type: 'POST',//获取方式
                data: {
                    自定义参数名:参数值
                }
            },
        }).on('preXhr.dt', function ( e, settings, data ) {
            myTable.settings().ajax.params().自定义参数名=参数值
        })

3.显示编号

    myTable.on( 'draw', function () {
        myTable.column(要显示编号的列索引值).nodes().each(function(cell,i){  
            i = i + 1;  
            var page = myTable.page.info();  
            var pageno = page.page;  
            var length = page.length;  
            var columnIndex = (i+pageno*length);  
            cell.innerHTML = columnIndex;  
        });
    })

4.使用datatable进行相邻行相同数据合并单元格
在使用databale时想进行相同值的单元格合并,但是网上找了不少方法都没有头绪。于是自己测试并编写了该段代码。

    $('#id).DataTable().on( 'draw', function () {
        var rows = [],nodes = myTable.column(需要合并的列索引值).nodes();
        nodes.each(function(cell,i){
            if(i != 0) {
                if($(cell).text() == $(nodes[i-1]).text()) {
                    var row = rows.pop();
                    rows.push({
                        cell: cell,
                        rowspan: row.rowspan+1,
                    });
                } else {
                    rows.push({
                        cell : cell,
                        rowspan: 1,
                    });
                }
            } else {
                rows.push({
                    cell : cell,
                    rowspan: 1,
                });
            }
        });
        var index = 0;
        $(rows).each(function(cell,item){
            $(nodes[index]).attr('rowspan',item.rowspan);
            for(var i = 1; i<item.rowspan;i++){
                $(nodes[index+i]).remove();
            }
            index += item.rowspan;
        });
    })

5.窗口改变大小后自动改变大小

    $(window).resize(function(){
        $('.table-sort').css('width','100%') //如果选定的元素不是自适应,则需要使用js修改选定元素的宽度
        myTable.columns.adjust().draw();
    });
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI