Reputation: 1459
I am having difficulty getting the horizontal scroll to work with dataTables.js. The expected result is a table that allows me to scroll horizontally within the table. The current result is a table that extends outside of the container div. Is there a solution?
HTML:
<div class="box-body table-responsive">
<table id="portal-drivers" class="table table-bordered table-striped" cellspacing="0" width="100%">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Number</th>
<th>Rating</th>
<th>Transactions</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bugs</td>
<td>Bunny</td>
<td>[email protected]</td>
<td>(310) 530-6789</td>
<td>4.8</td>
<td>309239045293459823945234895</td>
</tr>
</tbody>
</table>
CSS:
.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
white-space: nowrap;
}
#portal-drivers {
overflow: auto;
}
jQuery
$("#portal-drivers").dataTable({
"scrollX": true
});
Upvotes: 8
Views: 45690
Reputation: 1
I tried this and it worked for me,
$(document).ready(function() {
$('#example').dataTable( {
"sScrollX": "100%",
"sScrollXInner": "110%",
"bScrollCollapse": true
} );
} );
To enable x scrolling, you can set the sScrollX parameter your container wrapper's width to be. Also the sScrollXInner is used here to force the table to be wider than is strictly needed.
Upvotes: 0
Reputation: 193
In order to make the datatable scrollable (header and body both), use property sScrollXInner
along with sScrollX
as follows:
$("#my-demo-datable").dataTable({
"sScrollX": "100%",
"sScrollXInner": "110%",
});
Setting sScrollXInner to 100% will allow the table to be responsive and show the scroll bar only when the table overflows. At 110%, it will always be overflowing.
Upvotes: 9
Reputation: 57
For making datatable scroll-able ,you can try out this
$(document).ready(function() {
$('#example').DataTable( {
*"scrollY": 200,
"scrollX": true
} );
} )
Upvotes: -1
Reputation: 1459
Change "scrollX" to "sScrollX": '100%'
$("#portal-drivers").dataTable( {
"sScrollX": '100%'
} );
Upvotes: 15
Reputation: 299
Try putting this into CSS:
#portal-drivers {
overflow-x: scroll;
max-width: 40%;
display: block;
white-space: nowrap;
}
Upvotes: 7