簡體   English   中英

隱藏jQuery dataTables中的列?

[英]Hide column in jQuery dataTables?

我想隱藏在一列jQuery DataTables包含地理區在其th 這就是我在做的事情:

$(document).ready(function(){

        if(geo_zone_on_off==0){
            var _index=$("#datatable_ajax .heading th:contains(GeoZone)").index();
            var oTable=$("#datatable_ajax").DataTable();
            if(_index != -1){
                 oTable.column(_index).visible(false);
     }
        }
    });

加載了dataTable,但該列未被隱藏。 在這之前我嘗試在表格渲染時隱藏它並且它工作正常。 我當時做的是:

 "initComplete": function(settings, json) {
                       if(geo_zone_on_off==0){
                        var _index=$("th.sorting:contains(GeoZone),th.no-sort:contains(GeoZone)").index();

                           if(_index != -1){
                             grid.getDataTable().column(_index).visible(false);
                           }
                       }
                       },

但它有一個問題,它在表加載時顯示隱藏的列。 為了避免這個問題,我使用了首先提到的解決方案。 但它沒有工作,雖然我正在使索引正確。 它不會給出任何錯誤。

它不必如此復雜。 只需為該列name 為什么不在初始化時設置visible狀態?

columnDefs: [
  { targets: <index>, name: 'geozone', visible: geo_zone_on_off == 1 }
]

然后,稍后,您可以通過參考列名稱來更改可見性:

table.column('geozone:name').visible(false);

要么

table.column('geozone:name').visible( geo_zone_on_off == 1 );

查看列選擇器 - > https://datatables.net/reference/type/column-selector

您想要隱藏包含Geo Zone的列。

嘗試這樣的事情

$('table').DataTable();
    $('button').on('click',function(){
        $('th').each(function(i,e){
        if($(this).text()=='No') {
         $(this).hide();
         $('tr').each(function(){
          $(this).find('td').each(function(index,element){
            if(index==i) {
              $(this).hide();
            }
          });
         });
        }
      });
    });

演示

獲取Datatable對象

var table = $('#table').DataTable();

獲取列目標以更改可見性

var target = //Get target of column to hide for eg for third column target = 2
var column = table.column( target );

改變能見度

column.visible( false );

DataTable文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM