我使用的是蒲公英 - Thymeleaf的1.0.1版本。以下是我的蒲公英數據表的定義。在表格中有3個固定的列,後面是在頁面呈現時添加的一些列。Thymeleaf蒲公英在頁面呈現時添加了列的數據表
<table class="reportTable" dt:table="true" dt:pageable="false" dt:filterable="false" dt:processing="false" dt:serverside="false">
<thead>
<tr>
<th>Day</th>
<th>No of calls</th>
<th>Duration</th>
<th:block th:each="sb : ${timePeriodColumns}">
<th th:text="${sb}">x</th>
</th:block>
</tr>
</thead>
<tbody>
<tr th:each="sb : ${monthCallsByTimePeriod}">
<td th:text="${sb.day}">x</td>
<td th:text="${sb.numberOfCallsPerDay}">x</td>
<td th:text="${sb.callDurationPerDayInMinutes}">x</td>
<th:block th:each="tp : ${sb.dataForTimePeriod}">
<td th:text="${tp.numberOfCalls}">x</td>
<td th:text="${tp.callDurationInMinutes}">x</td>
</th:block>
</tr>
</tbody>
</table>
表呈現細如HTML,但是當蒲公英嘗試應用數據表,我得到JavaScript錯誤TypeError: col is undefined
在jquery.dataTables.js
,在那裏我可以看到它通過表中的列進行迭代,並且在調試時,我可以看到,只有3個固定oSettings.aoColumns中的列。因爲它在處理來自TBODY
的數據時遇到第一個動態添加的列,因此Datatable不會「知道」非固定列。
如果我省略了TBODY
部分(所以只有THEAD
表的一部分繪製)的錯誤不會發生,但我可以看到,固定列有DataTable的排序控制,但非固定列沒有這些控件,如果他們被排除在外。但看看HTML源,我看不到這些列之間的區別:
<thead>
<tr>
<th>Day</th>
<th>No of calls</th>
<th>Duration</th>
<th>Added col1</th>
<th>Added col2</th>
</tr>
</thead>
我在做什麼錯?如何在渲染時將一些列添加到蒲公英數據表中?作爲一種變通方法我已經加入前三列timePeriodColumns
名單,離開它Thymeleaf