2015-03-09 2 views
1

Я использую jQuery DataTables для отображения таблицы с разбивкой по страницам. Теперь я хочу перейти на страницу, содержащую определенную строку (с текущими настройками фильтра/сортировки). Если я знаю индекс строки, я могу легко сделать это с чем-то вроде tbl.fnPageChange(Math.floor(rowi/tbl.fnSettings()._iDisplayLength));.Найти индекс строки для индекса массива в jQuery DataTable

Однако, я знаю только индекс объекта данных в массиве данных (как возвращается tbl.fnGetData()).

Есть ли простой способ получить индекс строки на основе этого индекса данных? Так что в значительной степени противоположность fnGetPosition()?

+0

https://datatables.net/reference/api/row() .index() не делает то, что вы ищете? –

+0

@ Нильс, ты понял это? – Margo

+0

@Margo, да, только что отправил ответ с моим «решением». Это довольно хаки, хотя :) – Nils

ответ

1

Обновление: Я взломал что-то вместе, основываясь на перекручивание через массив aiDisplay:

function find_display_index(dataTable, data_index) { 
    var oSettings = dataTable.fnSettings(); 
    var row_index = -1; 
    for(var j = 0; j < oSettings.aiDisplay.length; j++) { 
     if(oSettings.aiDisplay[j] == data_index) { 
      row_index = j; 
      break; 
     } 
    } 
    return row_index; 
} 

Не уверен, что это лучший (или даже полностью правильный) путь, но это, кажется, работает!

Смежные вопросы