DataTable初次使用笔记

概述:DataTable是一个jQuery插件,用于生成HTML表格,功能很强大。

使用:

使用DataTable需要引入jQuery,因为他是基于jQuery的插件,然后引入DataTable的js文件和css文件即可,下面贴出该文章编写时使用的cdn。

<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
<script type="text/javascript" src="//cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>

然后我们需要在页面中定义一个table标签,并为其指定一个id

<table id="mTable"></table>

调用DataTable提供的初始化方法

$('#mTable').dataTable();

现在DataTable已经创建完成了,不过我们好像什么都看不到,因为没有表格数据嘛,当然是一片空白,接下来我们为这个表格加上一个表头

在table标签中加入如下代码

<table id="mTable">
    <thead>
        <tr>
            <td>姓名</td><td>年龄</td><td>性别</td>
        </tr>
    </thead>
</table>

再刷新网页是不是就能看到一个表格的效果了?下面就是对表格进行各种配置了,代码全部贴出来,一个一个解释

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
    <title>Datatable</title>
    <script type="text/javascript" src="//cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript" src="//cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
    <style type="text/css">
        .loading-img {
            position: fixed;
            left: 50%;
            top: 50%;
        }
    </style>
</head>
<body>
<table id="mTable">
    <thead>
        <tr>
            <td>姓名</td><td>年龄</td><td>性别</td>
        </tr>
    </thead>
</table>

<script type="text/javascript">
    $('#mTable').dataTable({
        language: {
            url: '//cdn.datatables.net/plug-ins/1.10.13/i18n/Chinese.json'
        },
        serverSide: true,
        ordering: false,
        searching: false,
        ajax: '/data.php',
        columns: [
            {data: 'name', title: '姓名'},
            {data: 'age', title: '年龄'},
            {data: 'sex', title: '性别'}
        ],

        // 仅仅在表格第一次初始化完成的时候调用
        initComplete: function( settings, json ) {
            alert('initComplete');
        },

        // 表格HTML画完完的时候触发,在initComplete之前
        drawCallback: function(settings) {
            alert( 'drawCallback' );
        },

        // 每画完一行就调用一次本方法
        "rowCallback": function(row, data, index) {
            console.log(data, row);
        }
    }).on('preXhr.dt', function(e, settings, data) {
        loading();
    }).on('xhr.dt', function(e, settings, json, xhr) {
        unloading();
    });

    function loading() {
        var content = '<img class="loading-img" src="/loading178.gif" />';
        $('body').append(content);
    }

    function unloading() {
        $('.loading-img').remove();
    }
</script>
</body>
</html>

language是指定表格所使用的语言,上面指的是用中文(官方提供的json文件cdn)

serverSize是一个很重要的参数,这个参数表明,对表格的数据分页,以及排序等操作都放到服务端去完成,启用这个参数之后,其对ajax指定的地址发起请求会带很多参数,这里暂不做讲解,不明白的朋友可以下面回复。

ordering和searching分别指定表格是否启用排序和搜索

ajax指表格中的数据源,即一个URL地址

columns指定每一列的数据绑定,其中data就是绑定的名称

最下面两个on是事件,分别表示发起ajax请求之前和请求结束的回调函数。

原文地址:https://www.cnblogs.com/shizqiang/p/6515308.html