如何在javascript中隐藏或显示使用数据表创建的表的列?

时间:2015-02-08 23:49:42

标签: javascript jquery datatables

当数据表的来源是javascript时,您知道如何隐藏或显示列吗?

显示或隐藏列的方法

 table = $('#example').DataTable();
var col = table.column("0").visible(false);

当数据源直接进入html时工作

<table id="example" class="row-border hover">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
...          

但是当DataTable有一个javascript源

时,它不起作用并启动错误
 var table = $('#example').dataTable({
                   "data": source,
                    "columns": columns,
                    "columnDefs": defs
    });


 var col = table.column("0").visible(false);//ERROR!

你知道如何用javascript源隐藏一列Datatables吗?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情,

var table = $('#example').dataTable({
  "data": source,
  "columns": columns,
  "columnDefs": [
  {
    "targets": [ 0 ],
    "visible": false,
  },
  "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull )     
  {
    $('td:eq(0)', nRow).hide();
  }
});

更新。尝试添加fnRowCallback。谢谢!

答案 1 :(得分:1)

我终于找到了另一个答案:它不依赖于html或json源,但DataTable()是新版本与dataTable()旧版本

之间存在差异
column(n).visible(bool) 

适用于DataTable()

fnRowCallback 

适用于dataTable()