Tablesorter - 排序时可以自动禁用分页器吗?

Posted

技术标签:

【中文标题】Tablesorter - 排序时可以自动禁用分页器吗?【英文标题】:Tablesorter - can pager be automatically disabled when sorting? 【发布时间】:2014-10-28 16:15:40 【问题描述】:

我们已经使用 Mottie 编程的表格排序器已经有一段时间了,一位用户询问我们是否可以在用户按任何列排序时自动禁用寻呼机。

如果您单击以下链接https://mottie.github.io/tablesorter/docs/example-widget-pager.html,您将看到一个演示表。按“禁用寻呼机”查看所有 50 行。然后按“主要”列排序,您会看到它自动恢复为 10 行的分页视图。

现在我知道第三个按钮允许销毁寻呼机以解决此问题,但我更愿意以某种方式阻止寻呼机在排序后默认为分页视图。这可能吗??原因是我们只使用一个按钮来在我们的应用程序中打开/关闭寻呼机。

【问题讨论】:

【参考方案1】:

寻呼机未设置为保持禁用状态,但您可以通过一些代码对其进行调整以满足您的要求 (demo)

我在寻呼机容器中添加了这个按钮

<button type="button" class="toggle">Disable</button>

并使用了这段代码:

var $table = $('table'),
    $pager = $('.pager'),
    pagerDisabled = false,
    savedPageSize = 10,
    disabledPageSize = 9999;

$table
    .tablesorter(
        theme: 'blue',
        widgets: ['zebra', 'columns']
    )
    .tablesorterPager(
        container: $pager
    );

$pager.find('.toggle').on('click', function()
    pagerDisabled = !pagerDisabled;
    var pager = $table[0].config.pager;

    if (pager.size !== disabledPageSize) 
        // save user set page size
        savedPageSize = pager.size;
    
    if (!pagerDisabled) 
        // set pagerLastSize before enabling pager
        $table.data('pagerLastSize', savedPageSize);
    
    // toggle pager state
    $table.trigger( ( pagerDisabled ? 'disable' : 'enable' ) + '.pager');

    // change button text
    $(this).html( pagerDisabled ? 'Enable' : 'Disable' );

    if (pagerDisabled) 
        // set pagerLastSize after disabling pager
        $table.data('pagerLastSize', disabledPageSize);
    

);

【讨论】:

以上是关于Tablesorter - 排序时可以自动禁用分页器吗?的主要内容,如果未能解决你的问题,请参考以下文章

Jquery排序分页插件tablesorter简介

问题:使用 jquery 插件 tablesorter 进行表格排序和分页

通过单击标题禁用 tablesorter 排序,但仍支持按下拉选项排序

jquery tablesorter 寻呼机不工作

Tablesorter 过滤器小部件,Tablesorter-filter 和分页问题

使用javascript的tablesorter(js)分页