数据表默认为空单元格的渲染函数

时间:2016-11-07 07:17:20

标签: jquery datatables

我想为我拥有的所有数据表中的所有空单元格定义默认值,但我不希望为每个列执行此操作:

$('#example').dataTable( {
  "ajaxSource": "sources/deep.txt",
  "columns": [
    { "data": "engine"
      "render": function (data, type, row) {
          if(row.platform == null) {
            return "-";
          } else {
            return row.platform.display;
          }                 
      },
    },        
    { "data": "browser",
      "render": function (data, type, row) {
          if(row.platform == null) {
            return "-";
          } else {
            return row.platform.display;
          }                 
      },
    },
    {
      "data": "platform",
      "render": function (data, type, row) {
          if(row.platform == null) {
            return "-";
          } else {
            return row.platform.display;
          }                 
      },
    }
  ]
} );

有没有机会在数据表默认值中定义它?我该怎么做?或者有一个更好的地方为空单元格定义此渲染默认操作?

/* default values for tables */
$.extend(true, $.fn.dataTable.defaults, {
    dom: "<'table_scroll_container't>" + "<'dt-row dt-bottom-row'<'col-md-4 m-b-10 h30 no-margin-md text-center text-md-left'B i><'col-md-8 m-b-10 h30 no-margin-md text-center text-md-right'l<'clearfix visible-xs-block visible-sm-block'>p>>",
    buttons: [],
    stateSave: true,
    stateDuration: -1,
    iDisplayLength: 50,
    autoWidth: false,
    processing: true,
    language: {
        "processing": "Processing...",
        "info": "Showing _TOTAL_ entries",
        "infoEmpty": "No records available",
        "infoFiltered": "filtered from _MAX_"
    }
});

欢迎所有其他提示:)

1 个答案:

答案 0 :(得分:5)

使用columns.defaultContent设置列的默认内容。

您还可以使用它为所有表设置默认值。例如:

$.extend(true, $.fn.dataTable.defaults, {
   columnDefs: [
      {
         targets: '_all',
         defaultContent: '-'
      }
   ]
});

请参阅this example以获取代码和演示。