Issue With Responsive DataTables And Bootstrap Tabs
I want to use Datatables and Responsive extension inside Bootstrap Tabs. I have this working separately. $(document).ready(function() { $('#example').DataTable( { respo
Solution 1:
CAUSE
There are multiple issues with your code:
- Bootstrap library is included before jQuery library
- API method
responsive.recalc()
is available indataTables.responsive.js
since1.0.1
, you're including version1.0.0
. - Event handler should be attached once DOM is available.
SOLUTION
Include Bootstrap library after jQuery library
Include Responsive extension version 1.0.1 or later
Use the code below:
$(document).ready(function () { $('#example').DataTable({ responsive: true }); $('#exampleInTab').DataTable({ responsive: true }); $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { $($.fn.dataTable.tables(true)).DataTable() .columns.adjust() .responsive.recalc(); }); });
DEMO
See updated jsFiddle for code and demonstration.
LINKS
See jQuery DataTables – Column width issues with Bootstrap tabs for solution to the most common problems with jQuery DataTables and Bootstrap Tabs.
Solution 2:
I tried the answers above but none worked. I was using JQuery Steps Wizard as tabs. I had to use $('#datatable').css("width", '100%')
as well for it to work.
wizard.steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
enableFinishButton: false,
enablePagination: false,
enableAllSteps: true,
titleTemplate: "#title#",
cssClass: "tabcontrol",
onStepChanged: function (event, currentIndex, priorIndex) {
if (currentIndex == 2) {
$('#datatable').css("width", '100%')
$($.fn.dataTable.tables(true)).DataTable().columns.adjust().responsive.recalc();
}
}
})
My Datatable is on the 3rd tab hence the check on the currentIndex
.
Post a Comment for "Issue With Responsive DataTables And Bootstrap Tabs"