ui: repeat + p: datatable вопрос - PullRequest
       5

ui: repeat + p: datatable вопрос

0 голосов
/ 09 февраля 2011

Я отображаю несколько 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>

Мне нужно, чтобы у каждого отдельного элемента данных был свой собственный пагинатор, однако, когда моя страницаотображается только первый элемент данных, который получает paginator, и этот paginator управляет всеми остальными отображаемыми страницами DataTables.

Спасибо за внимание!

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Единственным способом, который я нашел, было использование двух тегов 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>
3 голосов
/ 09 февраля 2011

Вероятно, это связано с JSF-выпуском 1830 .

. Лучше всего заменить ui:repeat на другой ретранслятор, который лучше выполняет свою работу UINamingContainer, например <p:dataList> или даже другой <p:dataTable>.Списочные маркеры <p:dataList> могут быть удалены с помощью CSS list-style-type: none.

Если это также не работает, то это может быть ошибка в самом PrimeFaces <p:dataTable>.

...