2012-07-10 132 views
8

我正在关注the example here。使用包含对象的数组。jquery数据表不显示列标题

创建我的数组像这样

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> 

创建标题的方式。如果您在示例页面上单击查看源代码,您将看到相同的实现。

+0

哦,还以为它会动态地拉..反正这个工作:)欢呼 – 2012-07-10 16:23:26

+0

@VinceLowe我认为这取决于数据是如何构成的。我广泛使用了Datatables,并且我偶尔会动态地显示列。例如,如果使用gridview(c#),然后将数据表应用到它,它将从gridview获取标题。此外,如果您指定自己的标题,则可以添加过滤器(如下拉菜单或文本框)。 – Drakkainen 2012-07-10 17:18:07

+0

我硬编码如上,但在我看来,你不应该拼出标题出在HTML ...我张贴[这是重新:动态生成标头](http://alanhollis.com/datatables-net- dynamic-column-headings-ajax-request /)希望能够帮助某人或让它在某个时间点工作...... – bahmait 2014-03-21 16:09:52

28

如果您正在传递数据的对象数组的形式,那么你就需要手动指定每一列的标题:

data = this.SearchController.resultSet; 
this.$tableContainer.dataTable({ 
    data: data, 
    columns: [ 
    { 
     data: "H", 
     title: "Thickness" 
    }, 
    { 
     data: "InstanceId", 
     title: "Instance ID" 
    }] 
}); 

注:这会不会要求您可以在您的table元素中指定标题。所有你需要的是一个空的<table>,这将工作。 文档here

+2

这应该是正确的答案。看起来它适合所有情况。 – Veverke 2014-12-11 17:31:40

+2

谢谢,我想知道为什么没有提到在数据表文件中的特定示例?我花了30分钟试图修复它,直到我得到您的回复 – george 2015-07-10 09:01:20

+0

非常感谢!我正在为此查找datatables文档,但无法找到它。 – lonesword 2015-10-01 11:54:44

1

下面将创建头动态

$('#dtableid').DataTable({ 
    "aaData": [ 
    { 
     "abc": "123", 
     "xyz": 456 
    }, 
    { 
     "abc": "123", 
     "xyz": 456 
    } 
    ], 
    "aoColumns": [ 
    { 
     "mData": "abc", 
     "title": "ABC", 
     "bSortable": true 
    }, 
    { 
     "mData": "xyz", 
     "title": "XYZ", 
     "bSortable": true 
    } 
    ] 
});