使用rowspan来表示dataTable

Jea*_*ard 14 html jsf primefaces

我对JSF primefaces 3.1很新.我尝试构建一个"复杂"表,我找不到使用dataTable的好解决方案(我需要一个排序组件).

我想构建一个等效于以下HTML表示的表,使用这样的基本POJO:

String field1
String field2
List<String> fields3 // 3 items
String field4

<table border="1">
<tr>
    <td rowspan="3">col1</td>
    <td rowspan="3">col2</td>
    <td>col3.1</td>
    <td rowspan="3">col4</td>
</tr>
<tr>
    <td>col3.2</td>
</tr>
<tr>
    <td>col3.3</td>
</tr>       
</table>
Run Code Online (Sandbox Code Playgroud)

我给的信息太少了,所以如果你需要,请告诉我:)我希望我的问题很清楚.

谢谢

Tir*_*res 3

自定义网格的一个可靠且灵活的解决方案是将 <c:forEach> 与 Primefaces <p:panelGrid> 一起使用:

<html ... xmlns:c="http://java.sun.com/jsp/jstl/core"
          xmlns:p="http://primefaces.org/ui">
    <p:panelGrid>
        <p:row>
            <p:column styleClass="ui-state-default" colspan="2"><!-- header -->
                <h:outputText value="Some Header"/>
            </p:column>
            ...
        </p:row>
        <p:row><!-- other header row -->
            ...
        </p:row>
        <c:forEach items="#{list}" var="element">
            <p:row>
                <p:column styleClass="ui-state-default" rowspan="#{list.sublist.someSizeExpression}"><!-- left rowspan -->
                    <h:outputText value="#{element.name}"/>
                </p:column>
                <c:forEach items="#{element.sublist}" var="subelement">
                    <p:column>
                        <h:selectBooleanCheckbox/>
                    </p:column>
                </c:forEach>
            </p:row>
        </c:forEach>
    </p:panelGrid>
</html>
Run Code Online (Sandbox Code Playgroud)

看起来不错,命令按钮和 AJAX 在 Head 和 Cells 中都有效。