Snippet
Sample HTMl Snippet <div class="dropdown showHideColumns" data-target="mainTable1"> <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"> <i class="fa fa-gear"></i> Show Hide Columns <span class="caret"></span> </button> <ul class="dropdown-menu"></ul> </div>
Here data-target=”mainTable1″ -> here mainTable1 represents the id for datatable
Required Dependent JS
Snippet
function ShowHideColumn(target, colIndex) {
var mTable = '#' + target;
var myDataTable = $(mTable).DataTable();
// Get the column API object
var column = myDataTable.column(colIndex);
// Toggle the visibility
column.visible(!column.visible());
}
$(document).on('click', 'a.toggle-vis', function (e) {
e.preventDefault();
ShowHideColumn($(this).data('target'), $(this).attr('data-column'));
});
$(document).on('change', '.toggle-vis', function (e) {
e.preventDefault();
ShowHideColumn($(this).data('target'), $(this).attr('data-column'));
});
$(document).ready(function (e) {
$('.showHideColumns').each(function (item, index) {
var t = $(this).data('target');
var thDrop = $(this).find('.dropdown-menu');
thDrop.html('');
if ($('#' + t).length >= 1) {
$('#' + t).find('thead th').each(function (index) {
thDrop.append('<li><a href="#"><input type="checkbox" checked="" class="toggle-vis" data-column="' + index + '" data-target="' + t + '">' + $(this).text() + '</a></li>');
});
}
});
});
