0

我正在尝试使用选择元素对某些列进行排序以在我的表中工作。在列的左侧,我有一列在初始化时隐藏。

我正在使用来自 DataTables.net 的 dom-select 排序插件:

$.fn.dataTableExt.afnSortData['dom-select'] = function  ( oSettings, iColumn )
{
        console.log(iColumn);

    var aData = [];
    $( 'td:eq('+iColumn+') select', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
        aData.push( $(this).val() );
    } );
    return aData;
};

对一列进行排序时,该列的索引在左侧有隐藏列和没有隐藏列时是相同的(上面 afnSortData 中的 iColumn)。但是,当左侧的列被隐藏时,排序将应用于右侧的列。如果它是未隐藏的排序工作应该。

当左侧有隐藏列时,如何确保将排序应用于我单击的同一列?

4

1 回答 1

1

一种快速而肮脏的方法是将 iColumn 值设置为少 1。

iColumn = iColumn - 1;

更新 更清晰的方法是这条路线,如DataTables 论坛所述:

iColumn = oSettings.oApi._fnColumnIndexToVisible( oSettings, iColumn );
于 2012-08-19T19:35:30.333 回答