jQuery dataTables добавляет несколько сворачиваемых строк с помощью API-функции fnOpen()

Я использую подключаемый модуль jQuery dataTables для построения расширенных таблиц для нашего приложения. Одним из требований является наличие «разборных» строк (не групп!): например. строки представляют кампании, и у них могут быть дочерние кампании. Структура дочерних строк (в основном) такая же, как и в родительской таблице — те же ячейки, те же типы данных.

Но дочерние строки не должны влиять на саму родительскую таблицу: я имею в виду, что количество строк на странице должно оставаться прежним, дочерние строки не должны сортироваться отдельно от родительской строки, они всегда должны оставаться связанными. Поэтому я не могу использовать для этого функцию fnAddData()API.

И еще одно сложное требование — возможность иметь многоуровневые сворачиваемые строки (например, дочерние кампании для дочерних кампаний и т. д.).

Для этого я использовал функцию fnOpen()API, он позволяет "открыть" любую строку, присоединить к ней дочерний блок, и вообще туда можно вставить что угодно. Он отлично работал в dataTables 1.8.2, я использовал такой код для генерации дочерних строк:

$(childRowData).each(function(){
    row = $(oTable.fnOpen(row.get(0), $(this), "child_row"));
    $(row).addClass('child_row');
});

Как правило, он «открывал» текущую строку (определено выше), вставлял данные в дочернюю строку, затем в цикл « открыл" дочернюю строку, добавил к ней дочернюю и т. д.

Но в dataTables 1.9.0 похоже, что разрешено только "открывать" родительские строки и только один раз.

Конечно, я могу создать подтаблицу, применить к ней $.dataTable()и вставить ее в дочернюю строку, но это кажется несколько хромым и дорогим решением, особенно когда мы может иметь 3-4 уровня глубины.

Есть ли другой способ реализации сворачиваемых строк в dataTables?

5
задан Alexander Gilmanov 7 June 2012 в 12:19
поделиться