【问题标题】:DataTables 1.10 column countDataTables 1.10 列数
【发布时间】:2016-01-05 10:16:05
【问题描述】:

我想添加一个额外的<thead>,它将包含我对数据表中该列的过滤器。

我可以使用以下脚本来做到这一点。 (为此,我应该在 dom 中定义 thead)

var tableid = $('#dataTableBuilder');
num_columns = tableid.find('thead > tr:first > th').length;
tableid.find('thead > tr:first').before('<tr id="filter-row"></tr>');
var filterrow = tableid.find('#filter-row');

while (num_columns-- > 0) filterrow.append('<th></th>');

问题是我不想通过查看 DOM 来计算要添加那么多 &lt;th&gt; 的列数。 (原因是我正在使用 Yajra Datatables HtmlBuilder 来生成我的表,我不知道前面的列数,并且添加的表代码只有 &lt;table id='xxxxxx'&gt;&lt;/table&gt;

我希望问题得到理解,我只需要知道如何使用数据表获取列数。

我试过myDataTable.fnSettings().aoColumns.length,但它说“fnSettings 不是一个函数”,它看起来像是在 1.10 中被弃用,有什么替代方法吗?

【问题讨论】:

    标签: datatables-1.10


    【解决方案1】:

    使用 1.10.x API 有多种方法可以获取列数。例子:

    var colCount = table.columns().header().length;
    var colCount = table.row(0).data().length;
    var colCount = table.columns()[0].length;
    ...
    

    关于myDataTable.fnSettings().aoColumns.length相信你在想

    table.init().columns / table.init().aoColumns

    table.init() 只保存您实际传递给数据表的初始化选项。如果您有这样的 dataTables 初始化

    var table = $("#example").DataTable({
       columnDefs : [
         { targets : [0], sortable : false }
       ]
    })
    

    然后table.init().columnDefstable.init().aoColumnDefs 将出现,但table.init().columns 不会出现,因为您尚未将columns 结构传递给dataTables。

    【讨论】:

      猜你喜欢
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多