如何在datatable中调用自定义列的渲染功能

时间:2016-06-13 13:07:33

标签: jquery datatables

嗨,有人请帮助解决以下问题。

我用来从用户那里获取动态列,基于我需要创建一个dataTable,我已经编写了下面的代码来读取列,我需要从一些列中应用渲染函数,这些列将显示代码值,请跟我分享一下如何做到这一点

function createDataTableColumns(ColumnsName)
{
  var colum = ColumnsName.split(",");
  $.each(colum, function (i, item) {
    var operationColumns = new Object();
    operationColumns.sTitle = item;
    operationColumns.data = item;
    operationColumns.push(operationColumn);

  })
}

function fnCreateTable(Data, tableID) {
  if ($.fn.dataTable.isDataTable('#' + tableID)) {
    var table1 = $('#customRptTable').DataTable();
    table1.destroy();
    $('#' + tableID + 'tbody').unbind('click');
  }
  $("#divOperation").show();
  debugger;
  var tableLicense = $('#' + tableID).DataTable({
    "data": Data,
    "aoColumns": operationColumns,
    "aaSorting": [],
    "bAutoWidth": true,
    "bPaginate": true,
    "searching": false,
    "sScrollX": "100%",
    "sScrollXInner": "100%",
    "scrollCollapse": true,
  });

  $("#divOperation").show();
};

1 个答案:

答案 0 :(得分:0)

您可以定义列,并且可以使用渲染。 Target属性允许您定义要更改的列。你不需要循环,渲染函数参数本身就是目标列的每个值。

 var tableLicense = $('#' + tableID).DataTable({
    "data": Data,
    "aoColumns": operationColumns,
    "aaSorting": [],
    "bAutoWidth": true,
    "bPaginate": true,
    "searching": false,
    "sScrollX": "100%",
    "sScrollXInner": "100%",
    "scrollCollapse": true,
"columnDefs": [ {
    "targets": 0,
    "data": null, // Use the full data source object for the renderer's source
    "render": function(data, type, full, meta){
        // here call your method
     }
  } ]
  });