使用rowspan对表进行排序

时间:2013-04-25 09:35:40

标签: jquery datatables tablesorter

我是法国人,请不要害怕我的句子错误。

我正在尝试对包含rowspan的单元格的标签进行排序:

但是对于datatables或tablesorter,我不知道是否可能。你知道怎么用tablesorter ou数据表做到这一点吗?你知道另一个可以做到这一点的插件吗?感谢。

4 个答案:

答案 0 :(得分:1)

您可以使用此插件:  1. http://tinysort.sjeiti.com/

答案 1 :(得分:1)

我最终修改了这个实现:

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的数据attr。然后我给了data-row attr。

的子行

这样可以保留组内的顺序,只保留组中第一行的组。

例如,请看这个小提琴: http://jsfiddle.net/djhqmt92/

答案 2 :(得分:0)

  

“jQuery tablesorter - 标题中的rowspan导致奇怪的行为”

当我用tableorter面对它时,我自己想出了问题,当然是通过谷歌搜索。 现在它工作得很好。

        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);
        });
    }); 

jsfiddle example

答案 3 :(得分:0)

要添加到Aju M T的答案,我必须做一个表,其中rowspan在第一个TD上,所以这个修复在这样的表上不起作用:

http://jsfiddle.net/S4872/

它有助于在表格前添加虚拟TD并添加CSS

dummy-tab {
   display: none;
}
像这样:

http://jsfiddle.net/S4872/2/