【问题标题】:Using jQuery Tablesorter filter-formatter widgets on column using a variable as column index在使用变量作为列索引的列上使用 jQuery Tablesorter filter-formatter 小部件
【发布时间】:2014-02-03 23:48:08
【问题描述】:

我正在尝试使用 Tablesorter 的 widgetOptions 中的 filter_formatter 将两个字段 uiDatepicker 应用于标题中包含“日期”的任何列标题。表中的所有其他列都有常规过滤器。当我使用零基数(0= 第一列)指定 col 索引时,我可以让这一切正常工作。我认为这将是一个简单的过程,它找到包含“日期”的标题的列索引并将其作为变量传递给 filter_formatter,但列索引似乎不接受变量。

我希望我已经足够清楚地解释了这一点。谁能帮忙。

    dateColumn = $('th:contains("Date")').index();

$('table').tablesorter({
    widgets: ["zebra", "filter", "uitheme"],
    widgetOptions : {
        filter_columnFilters : true,
        filter_startsWith : true,
        filter_searchDelay : 300,
        filter_reset : '.reset',
        filter_formatter : {
            dateColumn  : function ($cell, indx){ 
            return $.tablesorter.filterFormatter.uiDatepicker( $cell, indx, {
            textFrom: 'from',   // "from" label text
            textTo: 'to',       // "to" label text
            dateFormat: 'dd/mm/yy' ,
            changeMonth: true,
            changeYear : true
            });
        }

    }

}
});

这就是我认为可以让它发挥作用的方法。当 'dateColumn' 替换为 '1'(或其他数字)时,它会起作用。最终,我认为我需要为同一个表中的多个日期列包含一个“每个”循环。谢谢

【问题讨论】:

    标签: jquery jquery-plugins tablesorter


    【解决方案1】:

    遗憾的是,filter_formatter 函数不能这样工作。现在,您必须在表初始化之前设置filter_formatter。我确实计划允许按类或 id 引用列(请参阅issue #237),但我还没有编写出代码。

    var filterFormatter = {};
    $('table thead .date').each(function(){
        var column = $(this).index(); // assuming no colspans in the row
        filterFormatter[column] = function ($cell, indx){ 
            return $.tablesorter.filterFormatter.uiDatepicker( $cell, indx, {
                textFrom: 'from',   // "from" label text
                textTo: 'to',       // "to" label text
                dateFormat: 'dd/mm/yy' ,
                changeMonth: true,
                changeYear : true
            });
        }
    });
    $('table').tablesorter({
        widgets: ["zebra", "filter", "uitheme"],
        widgetOptions : {
            filter_columnFilters : true,
            filter_startsWith : true,
            filter_searchDelay : 300,
            filter_reset : '.reset',
            filter_formatter : filterFormatter
        }
    });
    

    【讨论】:

    • 这正是我想要做的。做得好。谢谢你。这是一种享受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2012-08-18
    • 2019-03-06
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多