Вопрос

Я разрабатываю веб-приложение SWOR-JSFV1.2-EJB3. У меня есть DataTable и Checkboxes в каждом ряду. Более того, у меня также есть DataScroller в нижней части моего стола.

Моя проблема заключается в том, когда я щелкнул следующий номер страницы из Scroller, выбранные флажки на первой странице DataTable исчезют. Я имею в виду, даже если они были выбраны, нажав на следующую страницу, заставляют их отменить. Я вижу это, вернувшись на первую страницу снова, нажав на прокрутку.

Есть ли у вас представление о этой проблеме? Для того, чтобы очистить мой случай, я прикрепил свой код ниже:

<rich:dataTable
            id="apiV2ProductList" rows="10" var="_apiV2Product"
            value="#{apiV2ProductList.resultList}"
            rendered="#{not empty apiV2ProductList.resultList}" reRender="ds">
            <rich:column>
                <f:facet name="header"> 
                    <h:selectBooleanCheckbox id="selectionCheckAll" onclick="selectAll()" /> 
                </f:facet>
                <h:selectBooleanCheckbox id="selectionCheck" onclick="increase(this)" value="#{_apiV2Product.selectValue}" >  
                </h:selectBooleanCheckbox>
            </rich:column>

...

<f:facet name="footer">
                <rich:datascroller id="ds" renderIfSinglePage="false">
                </rich:datascroller>
            </f:facet>

Спасибо заранее. Барис

Это было полезно?

Решение 2

Добавление опорного тега A4J между Scroller решила мою проблему:

<f:facet name="footer">
  <rich:datascroller id="ds" renderIfSinglePage="false">
   <a4j:support event="onpagechange"/> 
  </rich:datascroller>
</f:facet>

Однако другая вещь, я использую jQuery для стиля моего стола (Ex. На мышке перевернулся), и на этот раз, когда я нажимаю на следующую страницу моего стола, стиль уходит.

Любая помощь была бы великой, большое спасибо заранее.

** PS: Кстати, кстати, зрелая вещь для моего разума, это приходит мне невозможно найти решение самостоятельно для таких проблем. Ваше создание не всегда будет достаточно, чтобы решить (по крайней мере, здесь в моем примере, добавляя A4J: поддержка) Я прошу экспертов, как мы можем справиться с такими вещами ... **

Другие советы

Вы можете продлить org.richfaces.renderkit.html.DatascrollerTemplate Напишите свой собственный DataScroller для своего собственного стиля, добавив компонент с конфигурацией ниже в Faies-Config.xml

<component>
    <component-type>exCustHtmlDatascroller</component-type>
    <component-lass>org.jsf.common.ui.EXCustHtmlDatascroller</component-class>
</component>
<render-kit>
  <renderer>
      <component-family>org.richfaces.Datascroller</component-family>
      <renderer-type>exCustDataScrollerTemplate</renderer-type>
      <renderer- class>org.jsf.common.ui.EXCustDataScrollerTemplate</renderer-class>
  </renderer>
</render-kit>

Вам не нужен jQuery для стилизации DataTable

<rich:dataTable id="dataTable" var="x"  
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"

Проблема, которую вы видели с удаленными стилями, связаны с природой AJAX, а также таблица реренрес.

Предполагая, что вы стреляли на вызов первоначального стиля на основе некоторой формы загрузки страницы, в первый раз страница отображается, ваши стили будут применены. Однако, когда вы нажимаете кнопку «Далее» с Paginator, вы натягиваете много нового HTML Down, и заменив старый HTML в таблицу с более новым, обновленным информацией. Pooble вы видите, это то, что вы видели стиль, потому что jQuery прикладные стили к Старый Узлы, при рерандер, эти узлы полностью выброшены вместе со своим стилем. Вам просто нужно выяснить крюку, чтобы вызвать метод «styling», и повторно выполните этот вызов после переизложены таблицы.

Как правило, я использую тег A4J: status и настроить OnStart или Onstop, чтобы повторно проанализировать таблицу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top