我正在使用KnockoutJS开发一个项目,我们通过Ajax调用将数据存储到ko.observableArray中。目前,我在HTML中有以下表格:
`<table id="gpa">
<tbody data-bind="foreach: gpa">
<tr>
<td data-bind="text: LEVEL"></td>
<td data-bind="text: GPA_TYPE"></td>
<td data-bind="text: HOURS_ATTEMPTED"></td>
<td data-bind="text: HOURS_EARNED"></td>
<td data-bind="text: GPA"></td>
</tr>
</tbody>
</table>`
我们通过DataTables和相关选项生成内容的JavaScript是:
var gpaTarget = {
tableId: 'gpa',
options: {
paging: false,
ordering: false,
info: false,
searching: false,
processing: true,
autoWidth: true
},
columns: [
{ title: 'Level', data: 'LEVEL' },
{ title: 'GPA Type', data: 'GPA_TYPE' },
{ title: 'Hours Attempted', data: 'HOURS_ATTEMPTED' },
{ title: 'Hours Earned', data: 'HOURS_EARNED' },
{ title: 'GPA', data: 'GPA' },
]
}
//Add the DT target for Gpa data
dataTableTargets.push(gpaTarget);
//Initialize datatables for the appropriate DOM elements
if (dataTableTargets.length !== 0) {
$(document).ready(function () {
dataTableTargets.forEach(function (target) {
var table = target.tableId;
var options = target.options;
$('#' + table).DataTable(options);
});
理想情况下,DataTables.net网站对Column.title功能如何工作的描述的想法是,使用<thead>
部分,每列的title属性应呈现一个简单的列标题(请参阅{{3作为参考。)
但是,除非我在HTML中明确声明它们,否则我没有列标题。由于他们的页面显示<thead>
元素可能不存在,或者columns.title选项可以覆盖现有的<thead>
内容,因此我不知道为什么这不能按预期工作。
有没有人能够深入了解我在这种情况下可能做错了什么?非常感谢任何指导。