在搜索表格或导航到表格的最后一页时,pageLength
设置的结果可能会更少,因此表格会在高度上闪烁。我想通过填充空行的缺失行来防止这种情况。我怎么能这样做?
答案 0 :(得分:2)
您可以将bScrollCollapse
属性与sScrollY
一起使用。
正如documentation所说:
启用垂直(y)滚动时,DataTables将强制执行 表格视口的高度始终为给定高度 (对布局很有用)。但是,在过滤数据时,这看起来很奇怪 到一个小数据集,页脚进一步“浮动” 下。此参数(启用时)将导致DataTables崩溃 当结果集适合时,表的视口向下 给定Y高度。
你可以像这样使用它:
var table = $('#example').dataTable({
"sScrollY": "400",
"bScrollCollapse": false
});
这方面的一个例子是http://live.datatables.net/ukiyek/115/edit#javascript,html
更新:
您还可以将表格高度设置为100%,以便填充整个区域:
var table = $('#example').dataTable({
"sScrollY": "400",
"bScrollCollapse": false,
"fnDrawCallback": function() {
$(this).attr("height","100%");
}
});
示例here
更新2:
中找到您正在寻找的内容看看这个example,最后会添加空行。
答案 1 :(得分:2)
添加行似乎比样式化固定滚动区域更简单,更通用的解决方案(如MavRoSCy解决方案n.1)。
所以,这对我有用。
$(document).ready(function () {
var table = $('#example').dataTable({});
table.api().on('draw', function () {
var info = table.api().page.info(),
rowsOnPage = info.end - info.start,
missingRowsOnPage = info.length - rowsOnPage;
if (missingRowsOnPage > 0) {
for (var i = 0; i < missingRowsOnPage; i++) {
table.find('tbody').append(buildEmptyRow(6));
}
}
});
});
function buildEmptyRow(columnsCount) {
return '<tr class="empty">' + Array(columnsCount + 1).join('<td><div> </div></td>') + '</tr>';
}