我是法国人,所以请不要害怕我的句子错误。
我正在尝试对包含带有 rowspan 的单元格的选项卡进行排序:
但是对于数据表或表排序器,我不知道是否可能。你知道我怎么能用tablesorter ou datatables做到这一点吗?你知道另一个可以做到这一点的插件吗?谢谢。
我是法国人,所以请不要害怕我的句子错误。
我正在尝试对包含带有 rowspan 的单元格的选项卡进行排序:
但是对于数据表或表排序器,我不知道是否可能。你知道我怎么能用tablesorter ou datatables做到这一点吗?你知道另一个可以做到这一点的插件吗?谢谢。
你可以使用这个插件: 1. http://tinysort.sjeiti.com/
我最终修改了这个实现:
https://github.com/Mottie/tablesorter/issues/806
$('#results-table').bind("sortEnd updateComplete",function(e, table) {
$(table).find("[data-row]").each(function(idx, parent){
var $parent = $(parent);
var $rows = $(table).find('[data-parent="'+$parent.data('row')+'"]');
$rows.after($parent);
$rows.show();
});
});
我将data-parent
属性设为父 tr 的数据属性。然后是我给data-row
attr 的子行。
这保留了组内的顺序,并且仅按组中的第一行进行分组。
例如看这个小提琴:http: //jsfiddle.net/djhqmt92/
要添加到 Aju M T 的答案,我必须做一个表,其中行跨度位于第一个 TD 上,因此此修复程序不适用于这样的表:
它有助于在表格前面添加一个虚拟 TD 并添加 CSS
dummy-tab {
display: none;
}
像这样:
“jQuery tablesorter - 标题中的行跨度导致奇怪的行为”
当我用 tablesorter 面对它时,我自己发现了这个问题,当然是通过谷歌搜索。现在它运行良好。
var headers = {};
headers[0]={ sorter: false };
var tds={}
$('table').tablesorter({
headers: headers
});
$("table").bind("sortStart",function() {
$('table tbody tr:first td').each(function(i,h){
if (this.rowSpan>1) {
$(this).css('background','#CCC');
headers[i] = { sorter: false };
tds[i]=h;
h.remove()
}
});
}).bind("sortEnd",function() {
$.each(tds,function(i,td){
$('table tbody tr:first td:eq('+(i-1)+')').after(td);
});
$('table tbody tr').each(function(i,tr){
$('td:first',tr).html(i+1);
});
});