#jsf #richfaces #datascroller
#jsf #richfaces #прокрутка данных
Вопрос:
Я использую DataTable с помощью dataScroller. Я добавил атрибут ‘Page’ в свой dataScroller и поместил средства получения и настройки в компонент.
Как я могу проверить текущую страницу, на которой находится пользователь, в компоненте?
Должен ли я вручную поддерживать значение резервного компонента каждый раз, когда пользователь выбирает новую страницу, нажимает next, previous и т.д.?
<a4j:outputPanel id="renderArea">
<rich:dataTable id="testTable" rows="5" value="#{testBean.myList}" var="item">
....
</rich:dataTable>
</a4j:outputPanel>
<!-- Get called when clicking on button inside renderArea -->
<a4j:commandButton id="HIDDENRERENDER" reRender="renderArea,PTScroll" value=" test" style="display:none"/>
<a4j:outputPanel id="PTScroll">
<h:panelGrid>
<rich:datascroller for="testTable" maxPages="20" renderIfSinglePage="false" page="#{testBean.myPage}" />
</h:panelGrid>
</a4j:outputPanel>
public class testBean
{
private int myPage = 1;
public void initialise()
{
this.setMyPage(0);
}
public int getMyPage()
{
return myPage;
}
public void setMyPage(int page)
{
this.myPage = page;
}
}
Спасибо
Ответ №1:
Вам не нужно вручную устанавливать testBean.myPage
. При переходе туда и обратно с помощью <rich:datascroller>
Чтобы изменить значение страницы программно, просто присвойте set новый номер страницы testBean.myPage
в каком-либо методе действия. Затем повторно отобразите <rich:datascroller>
Комментарии:
1. Спасибо Кену. Как я могу получить доступ и изменить значение страницы в backing bean, хотя? (без необходимости выбора пользователем номера страницы во внешнем интерфейсе)
2. Привет, Mcloving. Я только что обновил свои ответы, чтобы ответить на ваш вопрос
Ответ №2:
Какую область вы используете для вызова testBean?
Попробуйте это, подкачка работает только в первый раз:
@Named
@Singleton
public class testBean {
....