2016-04-18 10 views
2

私のDatatablesでは、カラムを非表示にするためにbVisible : falseプロパティを使用しました。しかし、jQueryのclickイベントに隠されているかどうかにかかわらず、すべての列からデータを取得したいと考えています。すべての非表示の列データを取得するにはどうすればよいですか?私はこのコードを使用して、その列の値を取得していますプロパティ "bVisible:false"を持つDatatablesカラムの値を取得

$('#abc').dataTable({ 
    "bDestroy": true, 
    "aaSorting" :[], 
    "bAutoWidth": false, 
    "aoColumns": [ null,null,{ "sType": "numeric-comma" },null,{"bVisible": false},null,null,null,null,null,null,null,null ] 
}); 

:ここ

$(this).closest('tr').find("#xyz").text(); 

xyzは、必要な列のTD IDです

これは私が5列を非表示になってきた方法です。

+0

データを取得する「の定義すべての列から "を選択します。どうやって?あなたはそれらをすべて検索することができますか? – Ivar

+0

すべての列からデータを取得し、クリックイベントでポップアップモーダルで表示したいとします。私は試しましたが、非表示の列データを取得しませんでした。 –

+0

質問に試したコードを追加できますか? – Ivar

答えて

0

、使用しているのDataTableのバージョンに応じて、...

< 1.9(っぽい)

var table = $('#abc').dataTable(dtoptions); 

$('#abc').on('click', '.someclicktarget', function(ev) { 
    //need the ELEMENT, the the jquery object 
    var row = $(this).closest('tr').get(0); 

    var data = table.fnGetData(row); 

    doSomethingWith(data[indexOfHiddenColumn]); 
}); 

> 1.9.4(っぽい)

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

table.on('click', '.someclicktarget', function(ev) { 
    //>=1.10 can operate on either jquery objects OR plain elements 
    var row = $(this).closest('tr'); 

    var data = table.row(row).data(); 

    doSomethingWith(data[indexOfHiddenColumn]); 
}); 
+0

返信ありがとうございます。ここで、indexOfHiddenColumnは、どの位置の列がテーブルに追加されるかを意味します。私は0,1,2などを意味します。もしこれが本当であれば、テーブルの新しい列を追加するとインデックスが変更されるため、他のオプションがあります。 –

+0

ええ、あなたのページロジックは、必要に応じてその複雑さに対処する必要があります。これは、DataTables APIの仕組みを示す簡単な例です。アプリケーションとの統合は、Stack Overflowの答えの範囲を超えています。 – BLSully