JQuery datatables не показывает заголовки столбцов
Я пример здесь. Использование массива, содержащего объект.
Я создаю свой массив в цикле for, как это
historyArray[i] = {
"User": strUserName,
"Timestamp" : date.toString(),
"Latitude" : point.lat,
"Longitude" : point.lng
};
моя реализация datatable:
$(document).ready(function() {
$('#dynamic').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="report"></table>');
$('#report').dataTable({
"aaData": historyArray,
"aoColumns": [
{ "mDataProp": "User" },
{ "mDataProp": "Timestamp" },
{ "mDataProp": "Latitude" },
{ "mDataProp": "Longitude" }
],
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"sDom": '<"H"Tfr>t<"F"ip>',
"oTableTools": {
"sSwfPath": "swf/copy_csv_xls_pdf.swf",
"aButtons": ["copy", "csv", "xls", "pdf"]
}
});
});
Я получаю данные правильно, но без заголовков столбцов, я что-то пропустила?
4 ответов
попробуйте изменить свой <table>
элемент такой:
<table id=report>
<thead>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
</thead>
</table>
этак созданные заголовки. Если вы нажмете кнопку Просмотреть источник на странице примера, вы увидите ту же реализацию.
Если вы передаете данные в виде массива объектов, то вам нужно будет указать названия каждого столбца вручную:
data = this.SearchController.resultSet;
this.$tableContainer.dataTable({
data: data,
columns: [
{
data: "H",
title: "Thickness"
},
{
data: "InstanceId",
title: "Instance ID"
}]
});
Примечание: это не требуется указать заголовки table
элемент. Все, что вам нужно, это пустой <table>
и это будет работать.
Документация здесь.
ниже будет создавать заголовки динамически
$('#dtableid').DataTable({
"aaData": [
{
"abc": "123",
"xyz": 456
},
{
"abc": "123",
"xyz": 456
}
],
"aoColumns": [
{
"mData": "abc",
"title": "ABC",
"bSortable": true
},
{
"mData": "xyz",
"title": "XYZ",
"bSortable": true
}
]
});
Если ваш переход в массив данных и элемент таблицы скрыт во время инициализации datatable, то все элементы thead/tfoot и каждый дочерний элемент получают встроенный стиль height:0px, добавленный к ним.
обязательно покажите () элемент таблицы прямо перед инициализацией datatable, если вы не хотите вернуться после и изменить все стили высоты всех элементов.
// unhide your table
$('#dtableid').show();
// initialize your datatable
$('#dtableid').DataTable({
data: data,
// .. other init options
})