0 Replies Latest reply on Jan 17, 2008 1:29 PM by gonzalad

    dataScroller : invoke_app dataScroller.getPageIndex returns

    gonzalad Apprentice


      I'm using rich:dataScroller.

      Datascroller updates the page number *after* INVOKE_APPLICATION phase is complete (or just after my action handler is called).

      If I want to know the page number requested, I must use an actionListener (DataScrollerEvent.getNewScrolVal()), I cannot just rely on calling dataTable.getFirst() which returns the old value.

      Is it a bug ?

      See UIDataScroller code :

      public void broadcast(FacesEvent event) throws AbortProcessingException {
       //-> this calls my actionHandler
       //the pagination is here (should it be before my action handler ?
       if (event instanceof DataScrollerEvent) {
       DataScrollerEvent dataScrollerEvent = (DataScrollerEvent) event;
       FacesContext context = FacesContext.getCurrentInstance();
       AjaxRendererUtils.addRegionByName(context, this, this.getId());
       AjaxRendererUtils.addRegionByName(context, this, this.getFor());
       MethodBinding scrollerListener = getScrollerListener();
       if (scrollerListener != null) {
       scrollerListener.invoke(context, new Object[]{event});

      For instance : when I paginate to page 2, the following code just prints the previous rendered page number.

      I use the following code :
      public String testScroll() {

      <rich:datascroller for="table"
       action="#{reportAction.testScroll}" reRender="region"/>

      Thanks for your insight !