データ テーブルの Web サイトで説明されているように、すべての列のオプションを選択する機能については、以下で説明します。最初の列のドロップダウン値のみでテーブルデータをフィルタリングし、選択ドロップダウンを通常のヘッダーセクションではなく別の場所に配置するにはどうすればよいですか。たとえば、リンクを参照してください
initComplete: function () {
var api = this.api();
api.column().indexes().flatten().each( function (i) {
var column = api.column(i);
var select = $('<select><option value=""></option></select>').appendTo('$selectTriggerFilter').on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex($(this).val());
column.search( val ? '^'+val+'$' : '', true, false ).draw();
} );
column.data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' )
} );
} );
}
次のコードを使用しています。dom オプションを削除するとすぐに選択オプションが表示されますが、dom がないわけではありません。
$(document).ready(function() {
$('#tableTrigger').DataTable({
"lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "All"] ],
searching: false,
"scrollY": "200px",
"dom": 'frtipS',
"deferRender": true,
initComplete: function ()
{
var api = this.api();
api.columns().indexes().flatten().each( function ( i )
{
if(i == 0){ //Create just one SelectBox
var select = $('<select class='+i+'><option value=""></option></select>')
.appendTo( '#selectTriggerFilter')
.on( 'change', function () {
var val = $(this).val();
column( i ).search( val ? '^'+$(this).val()+'$' : val, true, false ).draw();
});
column( i ).data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' );
} );
}
else return;
});
}
});
});