I use <t:dataScroller>(MyFaces 1.1.3, tomahawk-1.1.2) like this:
<h:form id="videoListForm">
                    <t:dataTable id="videos" value="#{VideoListBean.videoList}" var="video" rows="1">
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="name"></h:outputText>
                            </f:facet>
                            <h:outputLink value="#{bundle.videoManagementUrl}">
                                <h:outputText value="#{video.chineseName}"></h:outputText>
                                <f:param name="videoId" value="#{ video.id}" />
                            </h:outputLink>
                        </h:column>
                    </t:dataTable>
                    <h:panelGrid columns="1">
                        <t:dataScroller id="scroll_1" for="" fastStep="1" pageCountVar="pageCount" pageIndexVar="pageIndex" paginator="true" paginatorMaxPages="9" paginatorActiveColumnStyle="font-weight:bold;" immediate="true"
                            actionListener="#{VideoListBean.scrollerAction}">
                            <f:facet name="first">
                                <t:graphicImage url="" first.gif" border="1" />
                            </f:facet>
                            <f:facet name="last">
                                <t:graphicImage url="" last.gif" border="1" />
                            </f:facet>
                            <f:facet name="previous">
                                <t:graphicImage url="" previous.gif" border="1" />
                            </f:facet>
                            <f:facet name="next">
                                <t:graphicImage url="" next.gif" border="1" />
                            </f:facet>
                            <f:facet name="fastforward">
                                <t:graphicImage url="" ff.gif" border="1" />
                            </f:facet>
                            <f:facet name="fastrewind">
                                <t:graphicImage url="" fr.gif" border="1" />
                            </f:facet>
                        </t:dataScroller>
                        <t:dataScroller id="scroll_2" for="" rowsCountVar="rowsCount" displayedRowsCountVar="displayedRowsCountVar" firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex" pageCountVar="pageCount" immediate="true" pageIndexVar="pageIndex">
                            <h:outputFormat value="#{bundle.videoScrollerPages}">
                                <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>
                    </h:panelGrid>
                </h:form>

But when I click "2", "next" or "fastforward", an error is reported:
java.lang.IllegalArgumentException: Illegal value for first row: -1
    at javax.faces.component.UIData.setFirst(UIData.java:991)
    at org.apache.myfaces.component.html.ext.HtmlDataTable.setFirst(HtmlDataTable.java:471)
    at org.apache.myfaces.custom.datascroller.HtmlDataScroller.broadcast (HtmlDataScroller.java:148)
    at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:136)
    at org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues (LifecycleImpl.java:219)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java :144)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java :663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)

What wrong?

Reply via email to