我有一个简单的,它目前有四个列、一个标题行和(包含当前数据)三个数据行。
我必须增加三列,这部分很容易。
我还想在现有的标题行之前添加另一个标题行,其标题跨越列的子集。
所期望的结果如下:
第1列:第一行为空;第二行为标题。
列2-4:第一行标题跨越3列;第二行有单独的列标题。
列5-7:第一行标题跨越3列;第二行有单独的列标题.
这个是可能的吗?如果是的话,我该如何做?
下面的图片显示了它应该是什么样子。
发布于 2010-03-10 20:43:16
如果您使用带有breakBefore属性的Richfaces (正如Bozho提到的那样),这将很容易。
下面是一个简单的例子:
<rich:dataTable value="#{countryCodeListFactory}" var="c">
<f:facet name="header">
<rich:columnGroup>
<rich:column colspan="2">Main</rich:column>
<rich:column colspan="4">Other Details</rich:column>
<rich:column breakBefore="true">Country ID</rich:column>
<rich:column>Name</rich:column>
<rich:column>Region</rich:column>
<rich:column>Alpha</rich:column>
<rich:column>ISO</rich:column>
<rich:column>Flag Path</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>#{c.countryId}</rich:column>
<rich:column>#{c.countryName}</rich:column>
<rich:column>#{c.region}</rich:column>
<rich:column>#{c.alpha3}</rich:column>
<rich:column>#{c.isoNum}</rich:column>
<rich:column>#{c.flagImage}</rich:column>
</rich:dataTable>如果你不是,那么希望你使用的是小块。然后,您可以使用<ui:repeat>手动构建表。
<table>
<tr>
<th colspan="2">Main</th>
<th colspan="4">Details</th>
</tr>
<tr>
<th>ID</th>
<th>Name</th>
<th>Region</th>
<th>Alpha</th>
<th>ISO</th>
<th>Flag</th>
</tr>
<ui:repeat value="#{countryCodeListFactory}" var="c">
<tr>
<td>#{c.countryId}</td>
<td>#{c.countryName}</td>
<td>#{c.region}</td>
<td>#{c.alpha3}</td>
<td>#{c.isoNum}</td>
<td>#{c.flagImage}</td>
</tr>
</ui:repeat>
</table>发布于 2010-03-10 07:30:56
你不能用<h:dataTable>来做这个。好吧,您可以使用一些丑陋的技巧,比如用javascript修改DOM并添加所需的列,但这不是您应该做的。
看看RichFaces dataTable --它的列支持colspan属性。
https://stackoverflow.com/questions/2414468
复制相似问题