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>
<div id="app">
    <button id="btnGet">请求接口</button>
    <table class="display" id="example"></table>

</div>
</body>

<script>

    $(function () {
        //这里用异步请求后端,获取数据
        // let dataset = [
        //     {id: 0, name: 'alice', age: 2, money: 2},
        //     {id: 2, name: 'vilson', age: 5, money: 2}
        // ];//数据格式
        let colunms = [];
        var tables;
        var clicks = 1;
        //将要渲染的colunms
        //根据后端返回的数据,取第一条数据,拼装colunms


        function getData() {

            $.ajax({
                url: "https://health.vilson.xyz/api/index/getData",
                success: function (result) {
                    colunms = [];
                    let obj = {};
                    let results = JSON.parse(result);
                    if (clicks === 2) {
                        // colunms =
                        //     [
                        //         {id: 1, admin_id: 1, admin_name: "admin", path: "订单管理展示页"},
                        //         {id: 2, admin_id: 2, admin_name: "admin2", path: "2订单管理展示页"},
                        //         {id: 3, admin_id: 3, admin_name: "admin3", path: "3订单管理展示页"},
                        //         {id: 4, admin_id: 4, admin_name: "admin4", path: "4订单管理展示页"},
                        //     ];
                        results =
                            [
                                {id: 1, admin_id: 1, admin_name: "admin", path: "订单管理展示页"},
                                {id: 2, admin_id: 2, admin_name: "admin2", path: "2订单管理展示页"},
                                {id: 3, admin_id: 3, admin_name: "admin3", path: "3订单管理展示页"},
                                {id: 4, admin_id: 4, admin_name: "admin4", path: "4订单管理展示页"},
                            ];
                    }
                    $.each(results[0], function (key, val) {
                        obj = {
                            "title": key,
                            "class": "center",
                            "render": function (data, type, full, meta) {
                                return full[key];
                            }
                        };
                        colunms.push(obj);
                        console.log(colunms);
                    });
                    console.log(tables);
                    if (tables) {
                        tables.destroy();
                        $('#example').empty();
                    }
                    console.log(colunms);
                    tables = $('#example').DataTable({
                        "processing": true, //是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
                        "data": results,//设置数据
                        "columns": colunms,
                        "filter": false,
                        // "destroy": true
                    });
                }
            });
        }

        getData();

        $("#btnGet").click(function () {
            clicks = 2;
            getData();
        });
    })
    ;
</script>
<style>
    .center {
        text-align: center;
    }
</style>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值