Javascript jquery数据表在选择菜单上的分页
我有一个选择菜单,有两个选项All和test…..当我选择All时,将显示一个包含15列的数据表,当选择test时,将选择另一个包含5列的数据表 当少于或等于5项时,应禁用分页 这就是我到目前为止所做的 如前所述创建了2个数据表Javascript jquery数据表在选择菜单上的分页,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个选择菜单,有两个选项All和test…..当我选择All时,将显示一个包含15列的数据表,当选择test时,将选择另一个包含5列的数据表 当少于或等于5项时,应禁用分页 这就是我到目前为止所做的 如前所述创建了2个数据表 function All(){ $('#All').dataTable({ "iDisplayLength": 5, "sPaginationType": "four_button", "bJQueryUI": true, "bRetr
function All(){
$('#All').dataTable({
"iDisplayLength": 5,
"sPaginationType": "four_button",
"bJQueryUI": true,
"bRetrieve": true,
"bAutoWidth": false,
"fnDrawCallback": function() {
if (Math.ceil((this.fnSettings().fnRecordsDisplay()) / this.fnSettings()._iDisplayLength) > 1) {
$('.dataTables_paginate').css("display", "block");
} else {
$('.dataTables_paginate').hide();
}
}
});
}
function Test(){
$('#Test').dataTable({
"iDisplayLength": 5,
"sPaginationType": "four_button",
"bJQueryUI": true,
"bRetrieve": true,
"bAutoWidth": false,
"fnDrawCallback": function() {
if (Math.ceil((this.fnSettings().fnRecordsDisplay()) / this.fnSettings()._iDisplayLength) > 1) {
$('.dataTables_paginate').css("display", "block");
} else {
$('.dataTables_paginate').hide();
}
}
});
}
$(document).ready(function(){
$('#List').val('All');
All();
$('#test').hide();
$("#List").change(function(){
if(this.value == 'All'){
All();
$('#All').show();
$('#Test_wrapper').hide();
}
else if (this.value == 'Test'){
Test();
$('#Test').show();
$('#All_wrapper').hide();
}
});
});
如您所见,我正在检查fnDrawCallBack函数中的分页。。。。。。
页面加载在最初调用时找到…但是当我在选择test之后选择All时,分页消失,这是可以理解的
这方面有什么办法吗?感谢您的帮助
谢谢没关系,找到了实现此功能的解决方案 在documennt.ready函数中,将这样的内容放入每个表的if条件中
$("#productsList").change(function(){
if(this.value == 'All'){
All();
all.fnPageChange( 'first' );
$('#All').show();
$('#Test').hide();
if (Math.ceil((all.fnSettings().fnRecordsDisplay()) / all.fnSettings()._iDisplayLength) > 1) {
$('.dataTables_paginate').css("display", "block");
} else {
$('.dataTables_paginate').hide();
}
另外,当从下拉列表中选择测试时,您也会执行类似的if循环
另一种方法,我试着这样做,发现上面的解决方案更可行,就是这样
尝试使用jQuery确定子节点是否处于活动状态……当值更改时,将其放入documenty.ready函数的if条件中
if($('#Test_wrapper #paginate_next').hasClass('paginate_enabled_next') || $('#Test_wrapper #paginate_previous').hasClass('paginate_enabled_next')){
$('#Test_wrapper .dataTables_paginate').css("display", "block");
} else {
$('#Test_wrapper .dataTables_paginate').hide();
}
注意:上面提到的方法仅隐藏分页
我已经尝试过了,破坏我的旧表并重新创建它,但这显示了一个javascript错误,没有时间查看它…我有时间时应该做:
请让我知道,如果有更好的解决方案
干杯并感谢您抽出时间来阅读以下内容: