时间:2010-03-26 07:56:33

标签: jsf

如果没有要显示的数据,jsf数据表仅显示标题。怎么说没有可用的记录,也告诉我有没有办法让行索引没有特定的方法。提前谢谢

               。 。

2 个答案:

答案 0 :(得分:1)

您可以使用相关组件的rendered属性来设置是否在组件树中呈现它。 E.g。

<h:dataTable value="#{bean.data}" rendered="#{not empty bean.data}">
    ...
</h:dataTable>
<h:outputText value="Data is empty!" rendered="#{empty bean.data}" />

如您所见,它可以采用布尔表达式,因此以下任何布尔表达式示例都是有效的:

<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue > 10}" />
<h:someComponent rendered="#{bean.objectValue == null}" />
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty bean.collectionValue}" />
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" />
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" />

not!的别名。有关可用EL运算符的更多信息,请参见here

要获得rowindex,请使用UIData#getRowIndex()

<h:dataTable binding="#{table}">
    <h:column><h:outputText value="#{table.rowIndex + 1}" /></h:column>
</h:dataTable>

答案 1 :(得分:1)

    <h:column>
        <f:facet name="header">
            <h:outputText value="S.No"></h:outputText>
        </f:facet>
        <h:outputText value="#{row+1}"></h:outputText>
    </h:column>
     .
     .

我使用tomhawk实现了它