Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery数据表在选择菜单上的分页_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript jquery数据表在选择菜单上的分页

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

我有一个选择菜单,有两个选项All和test…..当我选择All时,将显示一个包含15列的数据表,当选择test时,将选择另一个包含5列的数据表

当少于或等于5项时,应禁用分页

这就是我到目前为止所做的

如前所述创建了2个数据表

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错误,没有时间查看它…我有时间时应该做:

请让我知道,如果有更好的解决方案

干杯并感谢您抽出时间来阅读以下内容: