2017-08-17 8 views
4

jQuery DataTablesに、ジオゾーンを含むコラムをthに表示したいとします。これは私がやっていることです。jQueryデータテーブルの列を非表示にしますか?

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

しかし、それは表がロードされたとき、それは非表示列を表示する問題を抱えていた:私はその後、やったことでした。その問題を避けるために、まず最初に言及したソリューションを使用しました。しかし、私はインデックスを取得しているが、それは動作していません。何のエラーもありません。

+1

エラーが発生する一般的な方法は動作しません。あなたは自分自身をより明確に表現しますか? – Icepickle

+1

@Icepickleどのように私はそれを詳しく述べるべきですか?私はデータオブジェクト、列インデックスを持っていますが、私はそれらをすべて使用していますが、何をもっと説明する必要がありますか? – Anonymous

+0

あなたはそのコラムを見たいと思っていますか?もしそうでないなら、それを全く描くのはなぜですか? – bluehipy

答えて

0

ジオゾーンを含む列を非表示にしたいとします。

demo

0

は、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); 

Altキーを変更するためにコラムターゲットをゲット参照してください。この

$('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(); 
      } 
      }); 
     }); 
     } 
     }); 
    }); 

のようなものを試してみてくださいえー、視認性

column.visible(false); 

DataTable Documentation

1

それはとても複雑に持っていけません。単に列にnameと記入してください。初期化時にvisibleのステータスを設定しないのはなぜですか? : - >https://datatables.net/reference/type/column-selector

カラムセレクタで

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

または

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

をルック:

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

次に、後で、あなたは、列名を参照することにより、可視性を変更することができます

+0

問題は、データテーブルのロード中に非表示の列が表示されることです。 @davidkonrad – Anonymous

+0

@Anonymousで、 'columnDefs'や' columns'に 'visible:false'をセットした場合はそうではありません。 – davidkonrad

関連する問題