[英]jQuery-Datatables dropdowns ONLY for some columns
使用此代碼以及我見過的所有示例,我可以向所有列添加下拉列表,如圖所示:
var table = $('#myTable').DataTable({
dom: 'lfBrtip',
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.header()))
.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>' )
} );
} );
.......
}
例如,如何僅為第 2 列和第 3 列添加下拉列表?
您應該使用each
來獲取列索引以設置下拉列表。
var table = $('#myTable').DataTable({
dom: 'lfBrtip',
initComplete: function () {
var api = this.api();
this.api().columns().eq(0).each( function ( index ) {
if(index == 1 || index == 2)
{
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(api.column(index).header()))
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
var i = 0;
api.column(index).data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' );
} );
}
} );
.......
}
您所要做的就是添加以下兩行
var table = $('#myTable').DataTable({
dom: 'lfBrtip',
initComplete: function () {
this.api().columns().every( function () {
if(this[0] == 2 || this[0] == 3){//add
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.header()))
.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>' )
} );
} // add
} );
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.