DataTables-创建自定义分页样式(加载更多样式)
DataTables - Create Custom Pagination Style (Load More Style)
我想为DataTable使用一种移动友好的分页样式,我只想在单击时加载更多行的按钮,它将在当前可见行下附加行。
我知道这在DataTables中不是一个默认选项,但我相信创建它应该不会很困难。有人创建过这个分页方法吗?或者在DataTable的表上看到过它的使用吗?
如果不是,我如何修改表的代码https://jsfiddle.net/6k0bshb6/16/使用这种分页样式使我的表对移动友好。
// This function is for displaying data from HTML "data-child-value" tag in the Child Row.
function format(value) {
return '<div>Hidden Value: ' + value + '</div>';
}
// Initialization of dataTable and settings.
$(document).ready(function () {
var dataTable = $('#example').DataTable({
bLengthChange: false,
"pageLength": 5,
"pagingType": "simple",
"order": [[ 7, "asc" ]],
"columnDefs": [
{
"targets": [ 5 ],
"visible": false,
"searchable": true
},
{
"targets": [ 6 ],
"visible": false,
"searchable": true
},
{
"targets": [ 7 ],
"visible": false,
"searchable": true
}
],
// Dropdown filter function for dataTable from hidden column number 5 for filtering gifts.
initComplete: function () {
this.api().columns(5).every(function () {
var column = this;
var select = $('<select><option value="">Show all</option></select>')
.appendTo($("#control-panel").find("div").eq(1))
.on('change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val());
column.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function (d, j) {
select.append('<option value="' + d + '">' + d + '</option>')
});
});
}
});
// This function is for handling Child Rows.
$('#example').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = dataTable.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
} else {
// Open this row
row.child(format(tr.data('child-value'))).show();
tr.addClass('shown');
}
});
// Checkbox filter function below is for filtering hidden column 6 to show Free Handsets only.
$('#checkbox-filter').on('change', function() {
dataTable.draw();
});
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
var target = '£0.00';
var position = data[6]; // use data for the position column
if($('#checkbox-filter').is(":checked")) {
if (target === position) {
return true;
}
return false;
}
return true;
}
);
});
更新:我在DataTables网站上找到了一些关于如何做到这一点的信息,尽管我不完全理解如何将其集成到我的表中。
https://datatables.net/forums/discussion/3920/twitter-facebook-style-pagination
你可以做的(我没有尝试过,但我想不出为什么它不起作用…)是将滚动加载间隙(加载新数据时滚动底部之前的像素数)设置为负数(http://datatables.net/usage/options#iScrollLoadGap),然后在表的底部添加一个小按钮(可能需要使用fnDrawCallback),单击该按钮将加载下一个数据集(fnPageChange('next')应该这样做)。
有人知道我如何用我的桌子做这件事吗?有人能告诉我如何在jsfiddle上做到这一点吗?
更新2:数据表管理员的响应https://datatables.net/forums/discussion/35148/load-more-style-twitter-style-pagination-custom#latest
您提到的iScrollLoadGap选项在1.10中不可用-无限滚动在1.10中被删除,并且该选项也随之删除。
然而,基本原则仍然存在——你可以用户需要按下按钮来加载更多行(或者增加页面大小或使用rows.add()添加更多行)或使用滚动检测做同样的事情。
Allan
已解决。。
<button id="button" type="button">Page +5</button>
//Alternative pagination
$('#button').on( 'click', function () {
var VisibleRows = $('#example>tbody>tr:visible').length;
var i = VisibleRows + 5;
dataTable.page.len( i ).draw();
} );
您可以使用以下内容:
$(window).on("swipeleft", $("#example_next").click());
$(window).on("swiperight", $("#example_previous").click());
它只适用于移动设备,并使用您现有的功能。。。
- 跟踪在页面加载时应用内联样式的JavaScript
- DataTables-创建自定义分页样式(加载更多样式)
- 对插件初始化后动态加载的元素进行样式设置
- jQuery Mobile样式从另一个文件加载内容
- 避免在用ng href加载样式表之前显示内容
- 禁用移动样式表以加载整个网站
- 在不同的域上动态加载样式表;不适用于Firefox
- 如何在页面加载时折叠手风琴样式的特定部分
- webpack样式加载器-在react组件上导入不同的样式,而无需重写
- 在呈现HTML样式和脚本时加载启动页
- css样式加载+id.例如加载1、加载300
- jquery加载时间和里面的css样式
- 为不同的屏幕分辨率加载css样式的Javascript不起作用
- 将数据表.js样式应用于 AJAX 加载的表
- "数据表”;jquery加载后CSS样式消失
- 使用 Angular 样式加载 CSS
- 反应谷歌地图节点模块映射样式加载空对象,而不是JSON
- 错误:无法解析模块“样式加载器”
- 如何将样式加载到ckeditor中
- Rails应用程序仅在Chrome上显示正确.对于Firefox和Safari,所有的样式加载都不正确