在Jquery中动态地隐藏数据表列和列数据

问题描述:

如果J查询中有一些条件为真,我想隐藏一个列及其数据到数据表中。我可以在需要时使用下面的代码隐藏列(条件为真)。在Jquery中动态地隐藏数据表列和列数据

{ 
          'targets': [1], 
          'render': function (data, type, row, meta){ 
           var student= $("#studentName").val(); 
           if(student==''){ 
            return '<a href="URL?student='+row.student+'">'+row.student+'</a>'; 
           }else{ 
            table.columns([1]).visible(false); 
           } 
          } 
         }, 

但是它在加载数据时抛出低于警告。如果我点击确定预警,数据显示为目的(列,并且不显示的内容)

“的DataTable警告:表ID = {ID} - 请求的未知参数 ‘{参数}’为行{行指数},列{列的索引}”

+0

请显示您的整个dataTables初始化代码。 – davidkonrad

+0

请提供完整的DataTable代码,否则无法帮助您。 –

+0

请提供正确的信息 –

此发出警告,如果表中的列标题计数不通过数据列匹配是renderedSince我躲在一列,现在还没有列标题都超过1数据列,所以如果我将缺失列数据的默认内容设置为空,此警告将消失。我做了如下所示:

"{"data": "studentName", 
        "defaultContent": ""}, 
       ......... 
       ]," 

现在,如果学生姓名列可见,数据表将照常绘制。如果学生姓名列隐藏,则会设置默认内容。

完整的数据表组件如下。

var table = $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "pagingType": "simple", 
     "sDom" : '<"top"lp>rt<"bottom"lp><"clear">', 
     "ajax": { 
       url: 'JSONURL.json', 
       dataType: 'json', 
       type: 'GET', 
       data: function (d){ 
        d.param1= $("#studentName").val(), 

       }, 
      }, 
     "columns": [ 
      {"data": ""}, 
      {"data": "studentName", 
       "defaultContent": ""}, 
      ......... 
      ], 
      "columnDefs": [ 
         { 
          'targets': [1], 
          'render': function (data, type, row, meta){ 
           var student = $("#studentName").val(); 
           if(student==''){ 
            return '<a href="URL?student='+row.studentName">'+row.studentName+'</a>'; 
           }else{ 
            table.columns([1]).visible(false); 
           } 
          } 
         }, 
       ] 
});