我正在使用Bootsfaces数据表来显示我的数据。但是,我想实现复杂的标头,如下所示:https://datatables.net/examples/basic_init/complex_header.html
我尝试在第一个 dataTableColumn 的标题分面下直接添加<th rowspan>
和<th colspan>
,但在顶部有一个丑陋的空行。
我还尝试在 <b:dataTable...>
标记下添加整个标头方面,在 fist <b:dataTableColumn>
之前,但该标头代码不会生成到 html 中。还有其他建议吗?我不想切换到素数或富人脸,因为我的框架已经修复。
我试图实现复杂标头的代码如下所示:
<b:dataTable value="#{podStatusListBean.podStatusBeanList}"
var="podStatus"
id="podStatuses">
<b:dataTableColumn footer-style='background-color:orange'
footer-styleclass="{podStatusListBean.footerVisibility}">
<f:facet name="header">
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
</f:facet>
...
下一个BootsFaces版本(可能是1.2(的新功能。截至 2017 年 6 月 15 日,当前版本的 BootsFaces 1.1.1 仅支持每列的复杂标头。
每列的复杂标头(从 BootsFaces 0.8.0 开始支持(:在<b:dataTableColumn />
中添加标题分面,几乎是你尝试的方式。但请记住,BootsFaces 已经生成了<tr>
和<th>
标签,因此您可以再次嵌套它们。但是你可以做这样的事情:
<b:dataTableColumn>
<f:facet name="header">
<ul
style="margin-bottom: 0; list-style-type: none; padding-left: 0">
<li>Price</li>
<li>Engine Power</li>
</ul>
</f:facet>
€ #{car.price}
<br />
#{car.enginePowerKW} KW (#{car.enginePower} hp)
</b:dataTableColumn>
</b:dataTable>
更复杂的标头(从 BootsFaces 1.2.0 开始将支持(:将页眉分面添加到周围的<b:dataTable />
标记。在这种情况下,您负责定义正确数量的表头。如果你跳过一个,你会得到一个JavaScript错误的奖励。在许多情况下,它甚至会被忽视,但数据表的初始化是不完整的,所以你宁愿小心。
<b:dataTable value="#{carPool.carPool}"
var="car"
page-length="5"
page-length-menu="5,10,20">
<f:facet name="header">
<tr>
<th rowspan="2">Car</th>
<th colspan="2">Appearance</th>
<th colspan="2">Technical Data</th>
</tr>
<tr>
<th>Color</th>
<th>Year</th>
<th>Price</th>
<th>Power</th>
</tr>
</f:facet>
<b:dataTableColumn>
#{car.brand} #{car.type}
</b:dataTableColumn>
<b:dataTableColumn value="#{car.color}" />
<b:dataTableColumn value="#{car.year}" order="asc" />
<b:dataTableColumn value="#{car.price}" />
<b:dataTableColumn value="#{car.enginePower}"/>
</b:dataTable>