Переменные 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>

0 ответов

Другие вопросы по тегам