Вопрос

Я несколько проблем с использованием таблицы 2.0.3.

Первая проблема - когда я установил Colspan на своем столе. В основном, когда я делаю это, как показано ниже, это не сортирует соответствующие столбцы.

<table> 
<thead> 
        <th colspan="3"></th>  
        <th>Four</th> 
        <th>Five</th>
        <th>Six</th>
        <th>Seven</th>  
</thead> 
<tbody> 
<tr> 
        <td>1</td> 
        <td>2</td> 
        <td>3</td> 
        <td>4</td>
        <td>5</td> 
        <td>6</td>
        <td>7</td>
</tr>  
</tbody> 
</table> 

Вторая проблема, которую у меня есть, состоит в том, что независимо от того, что я установил в SortInitialRoder («Desc» или «ASC») в Tablesort.js, это не влияет на то, чтобы сделать сортинг восходящего или спуска, когда он нажимается.

Пожалуйста, кто -нибудь может помочь?

Это было полезно?

Решение

Чтобы решить проблему, вы можете создать свое собственное отображение заголовков с Cols Data. Вот что я сделал, чтобы получить функциональность так, как я хотел.

Я добавил следующий метод в Tablesort.js:

function findInMap(map, index, reverse) {
    for(var i = 0; i < map.length; ++i) {
        if(map[i][reverse ? 1 : 0] == index) return map[i][reverse ? 0 : 1];
    }

    return index;
}

А также добавил следующее в this.defaults

customMap: []

Изменить следующий метод:

function setHeadersCss(table,$headers, list, css) {
    $headers.removeClass(css[0]).removeClass(css[1]);

    var h = [];
    $headers.each(function(offset) {
        if(!this.sortDisabled) {
            h[this.column] = $(this);                   
        }
    });

    var l = list.length; 

    for(var i=0; i < l; i++) {
        var header = list[i];
        var headerIndex = findInMap(table.config.customMap, header[0], true);
        h[headerIndex].addClass(css[header[1]]);
    }
}

И последнее, но не менее важное: добавить/изменить следующее в $headers.click(function(e) {

Добавлять:

var ia = findInMap(config.customMap, i, false);

Изменять:config.sortList.push([i,this.order]); К config.sortList.push([ia,this.order]);

Когда вы инициируете, таблица проходит customMap[[header_col_id, data_col_id]] В вашем случае это будет:

customMap[
    [2, 4],
    [3, 5],
    ...
]

Другие советы

Что бы вы ожидали, если бы нажали на заголовок, охватывающий три столбца? В какой колонке вы ожидаете, что он будет сортировать? В целом, для того, чтобы Tablesorter работал, вам нужен один заголовок для каждого столбца.

sortInitialOrder Похоже, не упоминается на веб -странице для Tablesorter, но это существует в коде. Я только ранее использовал это:

sortList: [[5, 0]]

который изначально сортирует восходящее с помощью 5 -го столбца.

Я вроде решил эту проблему, так как я также хотел, чтобы таблица только сортировала только восхождение, я поправил линию 536 на this.order = this.count++ % 0; Что делает его сортировкой, как я хочу.

Что касается Colspan, мне просто пришлось прибегнуть к тому, чтобы иметь Blank, чтобы он сортировал соответствующие столбцы. Это может быть неправильная разметка, но я не вижу другого способа исправить это.

Я решил для себя аналогичную проблему со следующим патчем в самим коде таблицы;

Index: jquery.tablesorter.js
===================================================================
--- jquery.tablesorter.js   (.../original)  (revision x)
+++ jquery.tablesorter.js   (.../mine)  (revision y)
@@ -278,7 +278,10 @@
                     cache.row.push(c);

                     for (var j = 0; j < totalCells; ++j) {
-                        cols.push(parsers[j].format(getElementText(table.config, c[0].cells[j]), table, c[0].cells[j]));
+                        var cSpan = c[0].cells[j].colSpan || 1;
+                        while (cSpan--) {
+                            cols.push(parsers[j].format(getElementText(table.config, c[0].cells[j]), table, c[0].cells[j]));
+                        }
                 }

Всего моя проблема была изменена; У меня было 2 колонны, охватывающие 1 колласную ячейку. Это исправляет все столбцы после того, как простиранный столбец все еще сортируется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top