在使用变量作为列索引的列上使用 jQuery Tablesorter filter-formatter 小部件

Posted

技术标签:

【中文标题】在使用变量作为列索引的列上使用 jQuery Tablesorter filter-formatter 小部件【英文标题】:Using jQuery Tablesorter filter-formatter widgets on column using a variable as column index 【发布时间】: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'(或其他数字)时,它会起作用。最终,我认为我需要为同一个表中的多个日期列包含一个“每个”循环。谢谢

【问题讨论】:

【参考方案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
    
);

【讨论】:

这正是我想要做的。做得好。谢谢你。这是一种享受。

以上是关于在使用变量作为列索引的列上使用 jQuery Tablesorter filter-formatter 小部件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 获取表列索引?

pandas使用read_csv函数读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用方括号[]基于最外层列索引名称索引列数据

2 列索引与 3 列索引的性能方面

pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用iloc基于行索引位置列表筛选dataframe数据中指定位置的多个数据行

pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用set_index函数把数据列转化为行索引(keys参数指定需要被转化的层列索引)

pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用set_index函数把数据列转化为行索引(keys参数指定需要被转化的层列索引)