0

我正在使用 t:dataScroller 从 at:dataTable 滚动一些数据,它工作正常,除了一件事:每次触发导致屏幕刷新的操作时,t:dataScroller 的索引设置为 1。

更清楚一点:当我在第二页(索引== 2)并且屏幕刷新动作触发时,刷新后,dataTable的数据仍然来自索引2,但dataScroller显示正在显示的页面是第一个。

我以这种方式使用 dataScroller:

<t:dataScroller for="myDataTable" id="myDataScroller" paginator="true"
    paginatorMaxPages="#{myBean.paginatorMxPgs}" 
    pageCountVar="pgCount" pageIndexVar="#{myBean.curPg}"
    actionListener="#{myBean.pgListener}">

<f:facet name="prv">
    <h:panelGroup rendered="#{myBean.curPg > 1}" />
</f:facet>
<f:facet name="nxt">
    <h:panelGroup rendered="#{myBean.curPg != pgCount}"/>
</f:facet>
</t:dataScroller>

我正在使用tomahawk20-1.1.11.jarmyfaces-api-2.0.4.jar

4

1 回答 1

3

用于将滚动条设置为首页,在提交按钮上设置 actionlistener。

<t:commandButton actionListener="#{IFussBean.resetDataScroller}" 
                   action="#{IFussBean.searchLocation}" 
                   image="images/submit-button.png">    
  </t:commandButton>

捆绑:

如果是数据表

<t:dataTable id="data"
             headerClass=""
             footerClass=""
             rowClasses="text_holder"
             columnClasses="search_img,search_txt"
             var="item"
             value="#{IFussBean.searchVideoList}"
             preserveDataModel="false"
             rows= "6"
             binding="#{IFussBean.iFussData}"
 >

在你的 Bean 中声明 HtmlDataTable,定义它的 setter getter 如下:

private HtmlDataTable iFussData;

获取器和设置器

 public HtmlDataTable getiFussData() {
        return iFussData;
    }
    public void setiFussData(HtmlDataTable iFussData) {
        this.iFussData = iFussData;
    }

现在在 Bean 中定义 ActionListener 方法:

public void resetDataScroller(ActionEvent e) {
       if(iFussData!= null) {
           iFussData.setFirst(0);
       }
}

当您进行新搜索时,您的页面将设置为第一页。

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * / 如果您正在使用<rich:dataGrid>并且您的<t:dataScroller>然后是滚动条

 <rich:dataGrid 
            id="data"
            var="item" 
            columns="3" 
            elements="6" 
            width="600px"
            value="#{IFussBean.searchVideoList}"
            binding="#{IFussBean.iFussDataGrid}"
    >

在 Bean 中声明 HtmlDataGrid:

private HtmlDataGrid iFussDataGrid;

它的 getter 和 setter

public HtmlDataGrid getiFussDataGrid() {
        return iFussDataGrid;
    }



 public void setiFussDataGrid(HtmlDataGrid iFussDataGrid) {
            this.iFussDataGrid = iFussDataGrid;
        }

现在在 Bean 中定义它的动作监听器,它将在按下命令按钮时调用 search :

 public void resetDataScroller(ActionEvent e) {
               if(iFussDataGrid != null) {
                   iFussDataGrid.setFirst(0);
               }
          }

在命令按钮上调用 ActionListener

<h:commandButton styleClass="submit-button" actionListener="#{IFussBean.resetDataScroller}" action="#{IFussBean.searchLocation}" image="images/submit-button.png"/>

它也给出了欲望的结果。

于 2013-01-24T06:48:09.617 回答