2017-05-29 57 views
0

我使用的是蒲公英 - 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 undefinedjquery.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

回答

0

呈現所有列在<th th:each ...>

<thead> 
    <tr> 
     <th th:each="sb : ${timePeriodColumns}" th:text="${sb}">x</th> 
    </tr> 
</thead> 

我懷疑有使用< th:block ...>一個問題,但我不能證明給我看。無論如何,這解決了我的問題。

相關問題