0

テーブルで動作するように、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;
};

1 つの列を並べ替える場合、列のインデックスは、左側に非表示の列がある場合とない場合の両方で同じです (上記の afnSortData の iColumn)。ただし、左の列が非表示の場合、並べ替えは 1 ステップ右の列に適用されます。非表示にされていない場合、並べ替えは想定どおりに機能します。

左側に非表示の列がある場合、クリックしている同じ列に並べ替えが適用されるようにするにはどうすればよいですか?

4

1 に答える 1

1

手っ取り早い方法は、iColumn の値を 1 少なく設定することです。

iColumn = iColumn - 1;

更新DataTablesフォーラム で言及されているように、より明確なアプローチはこのルートです:

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