Подтвердить что ты не робот

Таблицы данных - Разверните детальные данные без использования Ajax

Я работаю над страницей, использующей jQuery DataTables (версия 1.10). Источник TableData в настоящее время отправляется как только таблица HTML на отображаемой странице и отлично работает. Однако я хочу иметь возможность расширять строки, чтобы показать подробную информацию.

Очень похож на пример Здесь

Однако на сайте, с которым я работаю в настоящее время, пока нет каких-либо веб-сервисов, поэтому я не смогу сделать ajax-вызовы для получения расширенной информации, как это использует пример.

Есть ли способ предоставить всю необходимую информацию для дочерних отношений родителя на полностью отображаемой странице?

Могу ли я каким-то образом вложить данные таблицы, чтобы получить это, или сообщить DataTables, чтобы каждая строка таблицы была дочерней над ней?

Я разместил этот же вопрос на форумах datatables: Вопрос

4b9b3361

Ответ 1

Вы можете сохранить данные для дочерней строки в атрибуте data родительской строки и изменить метод format из приведенного примера. Что-то вроде

В вашем HTML:

<tr data-child-name="test1" data-child-value="10">
    <td>ParentRow</td>
    <td>No. 1</td>
</tr>

В обработчике click (строка 50 из примера):

row.child( format( tr.data('child-name'), tr.data('child-value') ).show();

И как format метод что-то вроде:

function format ( name, value ) {
    return '<div>Name: ' + name + '<br />Value: ' + value + '</div>';
}

Ответ 2

В то время как технически этот пример не совсем использует AJAX, это по сути то же самое понятие. Вы по-прежнему вынуждены добавлять строки, используя функцию формата, независимо от того, создает ли функция формата HTML значения, полученные из AJAX, или жестко закодированные в ваши атрибуты данных. В чем разница.

Насколько я знаю, нет способа, чтобы дочерние строки были вставлены в ваш HTML с самого начала и просто имеют элементы управления расширением, просто ПОКАЗАТЬ уже существующий HTML для дочерних строк, а не строить дочернюю строку HTML, вставить его в DOM и показать его.