使用左侧隐藏列进行排序不起作用

时间:2012-08-14 09:45:58

标签: javascript jquery sorting datatables

我正在尝试使用select元素对我的表中的某些列进行排序。在列的左侧,我有一个隐藏在初始化的列。

我正在使用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;
};

当对一列进行排序时,列的索引在左侧有隐藏列而非左侧隐藏列时是相同的(iColumn在afnSortData之上)。但是,当隐藏左侧的列时,排序将向右一步应用于列。如果它是unhidden排序工作应该。

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

1 个答案:

答案 0 :(得分:1)

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

iColumn = iColumn - 1;

<强>更新DataTables forum

所述,这条路线更为清晰
iColumn = oSettings.oApi._fnColumnIndexToVisible( oSettings, iColumn );