数据表不使用面板网格显示任何数据,但很好

时间:2013-11-19 09:20:49

标签: jsf primefaces datatable

我目前正在使用一个pannel网格显示从数据库中恢复的一些数据,这工作正常,布局不完美但它显示所有正确的数据,但是我想使用数据表看起来比什么,我试图使用来自pannel网格的outputText但是当我运行页面时它只是说没有找到数据,但在同一页面上相同的代码显示pannel网格中的数据

我做错了什么?

这是工作面板网格的代码

                    <!-- heading -->
                    <f:facet name="header">
                        User Details
                    </f:facet>

                    <h:outputText value="#{bundle.ViewUserdetailsLabel_id}"/>
                    <!-- adding in a small effect here that will fade a message when a user hovers over the id number or username -->
                    <h:outputLink id="id1" value="#">  
                        <h:outputText id="id" value="#{userdetailsController.selected.id}" title="#{bundle.ViewUserdetailsTitle_id}"/> 
                    </h:outputLink>                            
                    <p:tooltip for="id" value="This is your I.D. Number" showEffect="fade" hideEffect="fade" />


                    <h:outputText value="#{bundle.ViewUserdetailsLabel_username}"/>
                    <h:outputLink id="username1" value="#">  
                        <h:outputText id="username" value="#{userdetailsController.selected.username}" title="#{bundle.ViewUserdetailsTitle_username}"/>
                    </h:outputLink>                            
                    <p:tooltip for="username" value="Your registered username, this can be changed" showEffect="fade" hideEffect="fade" />
                </p:panelGrid>

这是不可用的数据表

                              <p:dataTable>
                <p:column   >
                    <f:facet name="header">
                        <h:outputText value="{bundle.ViewUserdetailsLabel_id}"/>
                    </f:facet>
                    <h:outputText value="{userdetailsController.selected.id}" /> 
                </p:column>
                <p:column headerText="username" >
                    <f:facet name="header">
                        <h:outputText value="{bundle.ListUserdetailsTitle_username}"/>
                    </f:facet>
                    <h:outputText value="{userdetailsController.selected.username}" />
                </p:column>
            </p:dataTable>

你可以看到outputText值相同所以它应该正常工作吗?

感谢

1 个答案:

答案 0 :(得分:1)

如果碰巧只有少数硬编码值以表格的形式显示,那么最好使用<h:panelGrid>。但是,如果您有一个要迭代的对象列表并快速显示它们,请使用<p:dataTable>

假设我们有List名员工

 <p:dataTable var="employee" value="#{tableBean.employees}">  
    <p:column headerText="Name">  
        <h:outputText value="#{employee.name}" />  
    </p:column>  

    <p:column headerText="Age">  
        <h:outputText value="#{employee.age}" />  
    </p:column>  

    <p:column headerText="Sex">  
        <h:outputText value="#{employee.sex}" />  
    </p:column>  

</p:dataTable> 

然后你的桌子就像这样。在这种情况下,var完全是任意的,如果你愿意,你可以称之为“蓬松”。 dataTable可以使用很多设置,例如分页,导出,排序等。但我建议您熟悉Primefaces showcase