使用if隐藏数据表中的列

时间:2017-05-04 14:43:55

标签: jquery datatables

我是jquery和datatable的新手,但学得很快。

我想根据我用if测试的变量的值隐藏特定列。但我不知道在哪里放上if和代码来隐藏列。

HTML:

<table id="table_id" class="table table-striped table-bordered table hover" width="100%" cellspacing="0" >
<thead>
<tr>
    <th>Have</th>
    <th>A</th>
    <th>Good</th>
    <th>Day</th>
</tr>
</thead>

Jquery的:

$(document).ready( function () {
 $('#table_id').DataTable({
   "processing": true,
   "order": [[ 3, "desc" ]],
    "ajax": {
        "url": "somewhere.php",
        "type": "POST"
    },
    "columns": [
        { "data": "Have" },
        { "data": "A" },
        { "data": "Good" },
        { "data": "Day" } 
    ]
 });
} );

if

的伪代码
 if($_POST('something') =="hey"){
  hide column 1 and 2;}

1 个答案:

答案 0 :(得分:4)

使用initComplete选项将您的条件置于表格初始化之后。使用columns().visible() API方法隐藏选定的列。

例如:

var table = $('#example').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu',
    initComplete: function(settings, json){
       var api = new $.fn.dataTable.Api(settings);

       api.columns([4, 5]).visible(false);
    }
});

在上面的示例中,json变量保存来自服务器的响应,您可以使用该响应来定义显示/隐藏列的条件。

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