datatables option columns.render 渲染列(3) url变超链接、图片显示、值替换(加样式)

前言

用render在表格后面加按钮

1、html代码
<table class="table table-striped table-hover table-bordered"
                                           id="searchDatatable" width="100% ">
 </table >
2、js代码
$(document).ready(function () {
      // 配置 datatables 插件
       var dataTableId = "searchDatatable";
       var settings = function () {
           return setDatatable({
               "ajax": {
                   "url": "/clock/config",
                   "dataType": "json",
                   "type": "POST",
                   "data": function (table) {
                       var data = {};
                       $("#searchForm").find("input,select").each(function () {
                           var name = $(this).attr("id");
                           data[name] = $(this).val();
                       });
                       data["draw"] = table["draw"];
                       data["currentPage"] = (table["start"] + table["length"]) / table["length"];
                       data["pageSize"] = table["length"];
                       return data;
                   }
               },
               "columns":  [
                   {
                       "data": "fundCode",
                       "width": "100px",
                       "title": "基金代码"
                   }, {
                       "data": "fundName",
                       "width": "150px",
                       "title": "基金名称"
                   }, {
                       "data": "feature1Id",
                       "width": "100px",
                       "title": "产品配置1",
                       render: function (data, type, row, meta) {
                           //个人理解  --以及参数的应用场景

                           //data:当前cell的值  --主要是操作这个参数来做渲染

                           //type:数据类型,枚举类型dt内置定义的  --用处不大

                           //row:当前行的所有数据  --可以做来用级联(没办法更改其他cell的渲染)

                           //meta:它下面有三个参数

                           //   //row,col 是当前cell的横纵坐标(相对于左上角)

                           //         --可以结合上个参数row做更加复杂的级联

                           //   //settings:dt的api实例,动态所有的参数信息都在里面

                           //  --这个很强大,获取参数信息就好,新手不要随便更改里面的参数信息


                           var node = "<button ";
                           node += "data-id='"+data+"'"
                           node += ">" + "配置" + "</label>"
                           return node;
                       }
                   }
               ]
           })
       };

       // 使用 datatables 插件
       var table = $("#searchDatatable").DataTable(settings());
   });
3、参考相关

官网:
http://datatables.club/reference/option/columns.render.html
其它:
http://datatables.club/manual/daily/2016/04/27/option-columns-render3.html

`columns.render` 是 Datatables 中一个非常常用的选项,用于自定义表格渲染方式,可以根据需要返回不同的数据或者 HTML 元素。具体用法如下: 1. 在初始化 Datatables 时,设置 `columns` 选项,例如: ```javascript $(document).ready(function() { $('#example').DataTable( { ajax: 'data.json', columns: [ { data: 'name', title: 'Name' }, { data: 'position', title: 'Position' }, { data: 'office', title: 'Office' }, { data: 'salary', title: 'Salary', render: function ( data, type, row ) { return '$' + data; // 在数据前上美元符号 } } ] } ); } ); ``` 在上述代码中,`columns.render` 的作用是将 `salary` 中的数据前上美元符号,例如将 `10000` 渲染为 `$10000`。 2. `columns.render` 函数的参数解释如下: - `data`:当前单元格中的原始数据; - `type`:当前单元格的渲染类型,有 `display`(用于显示)和 `filter`(用于过滤)两种类型; - `row`:当前行的数据对象。 3. `columns.render` 函数需要返回一个用于渲染单元格的。可以是一个简单的字符串,也可以是一个包含 HTML 元素的字符串。 例如,如果想要在单元格中显示一个链接,可以返回一个包含 `<a>` 元素的字符串: ```javascript $(document).ready(function() { $('#example').DataTable( { ajax: 'data.json', columns: [ { data: 'name', title: 'Name', render: function ( data, type, row ) { return '<a href="' + row.url + '">' + data + '</a>'; // 返回一个链接 } }, { data: 'position', title: 'Position' }, { data: 'office', title: 'Office' }, { data: 'salary', title: 'Salary' } ] } ); } ); ``` 通过以上操作,您可以自定义表格渲染方式,使得表格数据更丰富多彩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值