使用panelgrid或除datatable之外的任何内容显示列表

时间:2013-05-13 15:47:15

标签: jquery jsf

我想使用panelgrid / panelgroup显示属性值列表,或者你可以建议我使用除datatable之外的任何东西,因为datatable需要列等来显示我在这种情况下不想做的列表。 我的输出应该像下面有多个讨论的例子:


员工姓名:指定:

绩效考核:感兴趣的领域:

改进:


员工姓名:指定:

绩效考核:感兴趣的领域:

改进:


2 个答案:

答案 0 :(得分:0)

您可以使用<ui:repeat>进行循环,因为它为value元素提供了无标记迭代。在迭代中,您可以自由地创建任何您想要的标记。这基本上意味着使用一些CSS,您可以通过使用嵌套的<div>,或使用表生成标记(如<h:panelGrid>)或任何其他方式来实现所需的布局。

两个例子。第一个,没有表格:

<ui:repeat value="#{bean.employees}" var="employee">
    <div class="employee-block">
        <div class="employee-line>
            #{msg.title}<h:inputText value=#{employee.title} ... />
            ...
        </div>
    </div>
</ui:repeat>

第二个,使用表格:

<ui:repeat value="#{bean.employees}" var="employee">
    <h:panelGrid columns="4">
        #{msg.title}<h:inputText value=#{employee.title} ... />
        ...
    </h:panelGrid>
</ui:repeat>

答案 1 :(得分:0)

使用ui解决问题:重复。那么它也可以使用其中只有列属性的数据表。

<panelGrid>
  <datatable value="#{list}" var="lst">
    <h:column>
      <panelGrid>
         <h:outputText value="#{lst.name}"/>
       </panelGrid>
    </h:column>
  </dataTable>
</panelGrid>

<panelGrid>
  <ui:repeat value="#{list}" var="lst">
      <panelGrid>
         <h:outputText value="#{lst.name}"/>
       </panelGrid>
  </ui:repeat>
</panelGrid>