2016-09-19 121 views
0

如果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

請提供正確的信息 –

回答

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); 
           } 
          } 
         }, 
       ] 
});