DataTables-развернуть дочерние данные без использования Ajax

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

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

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

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

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

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

2 ответов


вы можете хранить данные для дочерней строки в 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>';
}

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

насколько я знаю, нет никакого способа вставить дочерние строки в ваш HTML с самого начала и просто иметь элементы управления expand просто показать уже существующий HTML для дочерние строки, Не стройте дочернюю строку HTML, вставьте ее в DOM и покажите ее.