Переменные t:dataScroller не обновляются, если t:datascroller перед t:dataTable
Переменные t:dataScroller не обновляются, если t:datascroller перед t: dataTable
Я потратил некоторое время на поиск ответа здесь, как и на других сайтах, но ни с кем не сталкивался с такой же проблемой, не говоря уже о предлагаемых ответах.
Я понимаю, что myfaces t:datascroller одинаково функционирует независимо от того, помещается ли он до или после t: datatable в фасетах, если для атрибута 'for' установлено значение datatable id. У меня есть команда linkLink, которая приводит к тому, что критерии поиска будут опубликованы, в результате чего пересмотренный набор данных заполняет таблицу данных. Сама таблица данных корректно обновляется каждый раз, когда команда отправляет другой критерий поиска. Когда t:datascroller помещается после datatable в разметке, скроллер обновляется правильно каждый раз. Но не тогда, когда он помещается перед датируемой таблицей, и в этом случае требуется два щелчка по commandLink, в основном обновление; тогда значения скроллера (здесь скроллер 2) (pageCountVar,pageIndexVar) находятся на один шаг позади отображаемой таблицы данных. Скроллер показывает переменные для предыдущих результатов поиска.
Не будучи экспертом JSF2, несколько вещей, которые я безуспешно пытался сделать, это: 1. true и false для немедленного = для скроллера и datatable 2. forceId=, установка этого значения в true на скроллере приводит к тому, что кнопка элемента goToLast перестает работать, поэтому удалил его 3. имел контроллер данных и данные как дочерние элементы одной и той же панели Panel 4. попробовал $ вместо # для всех переменных datascroller 5. полностью квалифицировал значения для атрибутов 'for=' 6. пробовал commandButton, а также commandLink для запуска сообщения
Я использую tomahawk21 1.1.14 + mojarra 2.1.6 в Tomcat 7.0.47.
Любая помощь очень ценится здесь.
<div id="my_datatable_div">
<div id="scroll2_div">
<h:panelGroup rendered="${!myData.hasRows}">No folders found.</h:panelGroup>
<t:dataScroller id="scroll_2"
for="my_datatable"
style="margin:auto;padding:0;border:10px solid #ff0000;"
rowsCountVar="rowsCount"
displayedRowsCountVar="displayedRowsCountVar"
firstRowIndexVar="firstRowIndex"
lastRowIndexVar="lastRowIndex"
pageCountVar="pageCount"
immediate="false"
pageIndexVar="pageIndex"
rendered="${myData.hasRows}"
>
<h:outputFormat value="Filtered :{0}, showing {1}: from {2} to {3}, Page {4}/{5}.">
<f:param value="#{rowsCount}" />
<f:param value="#{displayedRowsCountVar}" />
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</h:outputFormat>
</t:dataScroller>
</div>
<div id="scroll1_div">
<t:dataScroller id="scroll_1"
styleClass="scroller1Style"
paginatorTableStyle="scroll1PaginatorTableStyle"
paginatorColumnClass="scoller1PaginatorColumnClass"
paginatorActiveColumnClass="scroller1PaginatorActiveColumnClass"
for="my_datatable"
fastStep="10"
pageCountVar="pageCount"
pageIndexVar="pageIndex"
paginator="true"
paginatorMaxPages="9"
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;"
rendered="${myData.shouldShowPaginator}"
immediate="false">
<f:ajax execute="my_datatable scroll_2 scroll_1" render="my_datatable scroll_2 scroll_1 "/>
<f:facet name="first" >
<h:graphicImage style="border:0;margin-right:15px;" library="icons20121211" name="Beginning-16x16.png" />
</f:facet>
<f:facet name="last">
<h:graphicImage style="border:0;margin-right:0;" library="icons20121211" name="Last-16x16.png" />
</f:facet>
<f:facet name="previous">
<h:graphicImage style="border:0;margin-right:15px;" library="icons20121211" name="Previous-16x16.png" />
</f:facet>
<f:facet name="next">
<h:graphicImage style="border:0;margin-right:15px;margin-left:15px;" library="icons20121211" name="Next-16x16.png" />
</f:facet>
<f:facet name="fastforward">
<h:graphicImage style="border:0;margin-right:15px;" library="icons20121211" name="FastForward-16x16.png" />
</f:facet>
<f:facet name="fastrewind">
<h:graphicImage style="border:0;margin-right:15px;" library="icons20121211" name="FastRewind-16x16.png" />
</f:facet>
</t:dataScroller>
</div>
<t:dataTable id="my_datatable" forceId="true"
immediate="true"
styleClass="my_datatable_style"
headerClass="standardTable_Header"
footerClass="standardTable_Header"
rowClasses="standardTableRowClass"
rowOnMouseOver="this.style.backgroundColor='#FAFF67'"
rowOnMouseOut="this.style.backgroundColor='#F5F5F5'"
rowOnClick="this.style.backgroundColor='#FFE0E0'"
var="dataItem"
value="#{myData.list}"
first="#{myData.firstRowIndex}"
preserveDataModel="false"
rows="#{myData.rowCount}">
<t:column styleClass="${myData.columnStyleFor(dataItem)}">
.....
</t:column>
</t:dataTable>
</div>