使用面记录数据表中多行的数据

时间:2009-01-20 15:29:23

标签: jsf datatable

在JSF中,是否可以使用数据表显示记录,如下所示?

      [Name  ][Last Name][Age]
1.    John     Doe         20
      Extra info on record 1

2.    John     Smith       20
      Extra info on record 2

谢谢

2 个答案:

答案 0 :(得分:4)

我确信有很多方法可以做到这一点。

如果您不介意嵌套表,可以使用 panelGrid 标记和CSS。

查看:

<f:view>
    <h:dataTable value="#{peopleBean.people}" var="row">
        <h:column id="column1">
            <f:facet name="header">
                <h:panelGrid columns="3" columnClasses="cell,cell,age">
                    <h:outputText value="First Name" />
                    <h:outputText value="Last Name" />
                    <h:outputText value="Age" />
                </h:panelGrid>
            </f:facet>
            <h:panelGrid columns="3" columnClasses="cell,cell,age">
                <h:outputText value="#{row.firstname}" />
                <h:outputText value="#{row.lastname}" />
                <h:outputText value="#{row.age}" />
            </h:panelGrid>
            <h:outputText styleClass="extra" value="#{row.extraInfo}" />
        </h:column>
    </h:dataTable>
</f:view>

样式表:

TABLE {
    width: 100%;
}

TABLE TR TD {
    text-align: left;
}

.cell {
    width: 40%;
}

.age {
    width: 20%;
}

.extra {
    background-color: silver;
    padding: 4px;
    display: block;
    width: 100%;
}

答案 1 :(得分:1)

第三个库,例如RichFaces,允许您使用subTable原则来实现。 您可以从RichFaces查看此example。与您想要做的相比,它有点复杂,但它显示了subTable组件的用法......