А Проблема
-
05-10-2019 - |
Вопрос
Я разрабатываю веб-приложение 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, чтобы повторно проанализировать таблицу.