1

古い tablesorter プラグインを使用しています。

私のテーブルには、並べ替え可能なコンボボックスの列があります。
ただし、値を変更すると、コンボボックスを正しく並べ替えることができません。

私はこのようなものを持っています(変更、抜粋):

function sortTable(columnId, sortOrder) {

    if (columnId && sortOrder) {
    // previous settings available

    var columnIndex = $("#" + columnId).index();

    // determine sort index
    var sortIndex = -1;
    if ("asc" == sortOrder) {
        sortIndex = 0;
    } else if ("desc" == sortOrder) {
        sortIndex = 1;
    }

    // sort table
    if (sortIndex > -1) {
        $('#table1').tablesorter({
            textExtraction: function(node) {
                // special processing for combobox
                if ($(node).find('option:selected').text() != "") {
                    var selected = $(node).find('option:selected').text();
                    return selected;
                } else {
                    return $(node).text();
                }
            },
            sortList: [[columnIndex, sortIndex]]
        });
    }
}  else {
    // no previous settings available

    $('#table1').tablesorter({
        textExtraction: function(node) {
            // special processing for combobox
            if ($(node).find('option:selected').text() != "") {
                var selected = $(node).find('option:selected').text();
                return selected;
            } else {
                return $(node).text();
            }
        }
    });
}

この関数は、テーブル ヘッダーをクリックすると呼び出されます。

$("#table1 th").click(function() {
    var sortInfo = determineColumnIdToSort();
    var sortOrder = determineNewSortOrder();
    removeTablesorter(); // removes binds to the tableSorter
    sortAssignMeasuresTable(columnId, sortOrder);
});

私の問題は
、値が異なるコンボボックスがある場合、ヘッダーをクリックすると正しくソートされることです。しかし、変更してコンボボックスに別の値を選択すると、並べ替えが正しく機能しません。並べ替える必要がある場合でも、コンボボックスは同じ位置に残ります。

4

1 に答える 1