Created
September 25, 2018 19:28
-
-
Save alexisdiel/6a44f4b9a3f17ac147234284e6f8f600 to your computer and use it in GitHub Desktop.
The best way to hide empty columns, on and after, datatables initialization
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$.fn.dataTableExt.oApi.fnHideEmptyColumns = function ( oSettings, tableObject ) | |
{ | |
/** | |
* This plugin hides the columns that are empty. | |
* If you are using datatable inside jquery tabs | |
* you have to add manually this piece of code | |
* in the tabs initialization | |
* $("#mytable").datatables().fnAdjustColumnSizing(); | |
* where #mytable is the selector of table | |
* object pointing to this plugin. | |
* This plugin can be invoked from | |
* fnInitComplete callback. | |
* @author John Diaz | |
* @version 1.0 | |
* @date 06/28/2013 | |
*/ | |
var selector = tableObject.selector; | |
var columnsToHide = []; | |
$(selector).find('th').each(function(i) { | |
var columnIndex = $(this).index(); | |
var rows = $(this).parents('table').find('tr td:nth-child(' + (i + 1) + ')'); //Find all rows of each column | |
var rowsLength = $(rows).length; | |
var emptyRows = 0; | |
rows.each(function(r) { | |
if (this.innerHTML == '') | |
emptyRows++; | |
}); | |
if(emptyRows == rowsLength) { | |
columnsToHide.push(columnIndex); //If all rows in the colmun are empty, add index to array | |
} | |
}); | |
for(var i=0; i< columnsToHide.length; i++) { | |
tableObject.fnSetColumnVis( columnsToHide[i], false ); //Hide columns by index | |
} | |
/** | |
* The following line doesn't work when the plugin | |
* is used inside jquery tabs, then you should | |
* add manually this piece of code inside | |
* the tabs initialization where ("#myTable") is | |
* your table id selector | |
* ej: $("#myTable").dataTable().fnAdjustColumnSizing(); | |
*/ | |
tableObject.fnAdjustColumnSizing(); | |
} | |
// Plugin usage: | |
"fnInitComplete": function () { | |
/** | |
* Go to plugin definition for | |
* instructions on how to use. | |
*/ | |
this.fnHideEmptyColumns(this); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment