我正在尝试使用Tablesorter的widgetOptions中的filter_formatter将两个字段uiDatepicker应用于标题中包含“Date”的任何列标题。表中的所有其他列都有常规过滤器。当我使用零基(0 =第1列)指定col索引时,我可以正常工作。我认为这将是一个简单的过程,它找到包含'Date'的标题的列索引,并将其作为变量传递给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'(或其他数字)时,它可以工作。为了使这个工作得很好。最终我认为我需要在同一个表中包含多个日期列的'each'循环。感谢
答案 0 :(得分:0)
遗憾的是,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
}
});