ui:repeat + p:数据表问题

时间:2011-02-09 16:35:46

标签: jsf datatable primefaces

我通过p:datatable显示多个ui:repeat,以下代码段说明了我在做什么:

<ui:repeat id="searchTables"
    value="#{searchBean.mapKeys}"
    var="mapKeys">
         <p:dataTable id="recordTable"
            value="#{searchBean.resultMap[mapKeys].resultList}"
            var="recordTable"
            paginator="true"
            rows="10">
                 <f:facet name="header">
                      <h:outputText value="#{searchBean.resultMap[mapKeys].name}"/>
                 </f:facet>
                    <p:columns value="#{searchBean.resultMap[mapKeys].resultColumns}"
                               var="column"
                               columnIndexVar="colIndex">
                        <f:facet name="header">
                            <p:outputPanel>
                                #{column.header}
                            </p:outputPanel>
                        </f:facet>
                        <h:outputText value="#{recordTable[column.property]}"/><br/>
                    </p:columns>
         </p:dataTable>
 </ui:repeat>

我需要每个单独的数据表都有自己的分页器,但是当我的页面显示时,只有第一个数据表获取分页器,而这个分页器控制所有其他显示的DataTables页面。

感谢您的关注!

2 个答案:

答案 0 :(得分:3)

这可能与JSF issue 1830有关。

您最好的选择是将ui:repeat替换为另一个更好地执行其UINamingContainer工作的转发器,例如<p:dataList>或另一个<p:dataTable><p:dataList>的列表项目符号可以通过CSS list-style-type: none删除。

如果这也不起作用,那么它可能是PrimeFaces <p:dataTable>本身的一个错误。

答案 1 :(得分:3)

我找到的唯一方法是使用两个p:datatable标签,父标签只有一列。我无法使用p:dataList。我猜p:dataList正在扩展相同的虚假类。

应该用这个:

<p:datatable id="searchTables"
    value="#{searchBean.mapKeys}"
    var="mapKeys">
    <p:column>
         <p:dataTable id="recordTable"
            value="#{searchBean.resultMap[mapKeys].resultList}"
            var="recordTable"
            paginator="true"
            rows="10">
                 <f:facet name="header">
                      <h:outputText value="#{searchBean.resultMap[mapKeys].name}"/>
                 </f:facet>
                    <p:columns value="#{searchBean.resultMap[mapKeys].resultColumns}"
                               var="column"
                               columnIndexVar="colIndex">
                        <f:facet name="header">
                            <p:outputPanel>
                                #{column.header}
                            </p:outputPanel>
                        </f:facet>
                        <h:outputText value="#{recordTable[column.property]}"/><br/>
                    </p:columns>
         </p:dataTable>
    </p:column>     
 </p:dataTable>
相关问题