2012-08-14 1 views
0

Я пытаюсь сортировать некоторые столбцы с элементами выбора, которые будут работать в моей таблице. Слева от столбцов у меня есть столбец, скрытый при инициализации.Сортировка со скрытыми столбцами слева не работает

Я использую РОМ выбрать плагин сортировочную из DataTables.net:

$.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 in above afnSortData). Но сортировка применяется к столбцу на один шаг вправо, когда столбец слева скрыт. Если это несвязанная сортировка работает так, как предполагалось.

Как я могу убедиться, что сортировка применяется к тому же столбцу, который я нажимаю, когда у меня есть скрытый столбец слева?

ответ

1

Быстрый и грязный подход заключается в том, чтобы установить значение iColumn на 1 меньше.

iColumn = iColumn - 1; 

Update clearner подход был бы этот маршрут, как уже упоминалось на DataTables forum:

iColumn = oSettings.oApi._fnColumnIndexToVisible(oSettings, iColumn); 
+0

Спасибо, я постараюсь это и вернуться сюда с комментариями. – Nicsoft

+0

Но тогда у меня возникают проблемы, когда я показываю столбцы. И столбец, который я показываю, не является левым большинством, а посередине таблицы, поэтому он будет исправлять столбцы справа от незакрытого столбца. – Nicsoft

+0

@Nicsoft - ответ обновлен. – mg1075