2012-07-10 58 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 
    } 
    ] 
});