JQuery DataTables 重新渲染

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="http://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
    <!--    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>-->
    <script type="text/javascript" src="http://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
</head>
<body>
<button id="rebuild">点击重建</button>
<div id="app">
</div>
</body>
<script>
    $('#app').html('<table class="display" id="example"></table>');//动态生成表格
    $(document).ready(function () {
        //这里用异步请求后端,获取数据
        var dataset = [
            {id: 0, name: 'alice', age: 2, money: 1522},
            {id: 2, name: 'vilson', age: 5, money: 2454}
        ];//数据格式
        var colunms = [
            {
                "title": '序号',
                "class": "center",
                "render": function (data, type, full, meta) {
                    return meta.row + 1;
                }
            }
        ];
        //将要渲染的colunms
        //根据后端返回的数据,取第一条数据,拼装colunms
        $.each(dataset[0], function (key, val) {
            var obj = {
                "title": key,
                "class": "center",
                "render": function (data, type, full, meta) {
                    return full[key];
                }
            };
            colunms.push(obj);
        });
        var table = $('#example').DataTable({
            "pageLength": 1,
            "processing": true, //是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
            "data": dataset,//设置数据
            "columns": colunms
        });
        $("#rebuild").click(function () {
            dataset = [
                {id: 3, name: 'xxx', age: 21, money: 1522},
                {id: 4, name: 'cccc', age: 53, money: 1522}
            ];//数据格式
            table.destroy();
            table = $('#example').DataTable({
                "processing": true, //是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
                "pageLength": 2,
                "data": dataset,//设置数据
                "columns": colunms
            });

        });
    });
</script>
<style>
    .center {
        text-align: center;
    }
</style>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JQuery Datatables 中,渲染器(render)是一种用于修改单元格中数据显示方式的方法。使用渲染器,你可以将列中的数据以特定的方式呈现,例如格式化日期、显示图片等。在使用 Datatables 的时候,你可以将渲染器指定给一列,然后 Datatables 会在呈现表格时自动应用该渲染器。 渲染器是一个 JavaScript 函数,它接收四个参数: ```javascript function(data, type, row, meta) { // data: 单元格中的数据 // type: 描述单元格数据类型的字符串,可能的值为 'display', 'filter', 'sort', 'type' // row: 包含该单元格数据的行的数据对象 // meta: 包含该单元格数据的行和列的元数据对象 } ``` 其中 `data` 参数是单元格中的数据,`type` 参数是一个描述单元格数据类型的字符串。`type` 参数有四种可能的取值: - `display`: 用于在表格中显示的数据。 - `filter`: 用于过滤数据数据。 - `sort`: 用于排序的数据。 - `type`: 用于定义数据类型的数据。 根据 `type` 参数的不同取值,渲染器可以返回不同的数据格式。例如,如果 `type` 参数为 `display`,渲染器可能会返回一个 HTML 字符串,用于在表格中呈现单元格数据;如果 `type` 参数为 `sort`,渲染器可以返回一个数字或字符串,用于在排序时比较单元格数据。 除了接收参数,渲染器还必须返回一个字符串或 DOM 元素,用于表示单元格中的数据。如果渲染器返回一个字符串,该字符串将显示在单元格中;如果渲染器返回一个 DOM 元素,该元素将作为单元格中的内容。 要为 Datatables 中的列指定渲染器,可以使用 `columnDefs` 选项。例如,以下代码将第一列的渲染器设置为一个将日期格式化为 `YYYY-MM-DD` 的函数: ```javascript $('#example').DataTable( { columnDefs: [ { targets: 0, render: function(data, type, row, meta) { if (type === 'display') { return moment(data).format('YYYY-MM-DD'); } else { return data; } } } ] }); ``` 以上代码使用了 moment.js 库来格式化日期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值