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 и покажите ее.