2012-09-28 55 views
0

我正在使用t:dataScroller來滾動dataTable中的一些數據,並且除了一件事情以外它工作正常:每次觸發一次導致屏幕刷新的操作t:dataScroller的索引設置爲1.t:dataScroller無法在刷新上正常工作

更清楚:當我在第二頁(索引== 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

回答

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}" 
> 

申報HtmlDataTable在Bean中,定義其制定者的getter如下:

private HtmlDataTable iFussData; 

getter和setter

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

現在豆定義的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}" 
    > 

申報HtmlDataGrid:

private HtmlDataGrid iFussDataGrid; 

它的getter和setter

public HtmlDataGrid getiFussDataGrid() { 
     return iFussDataGrid; 
    } 



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

現在定義的Bean的動作監聽器將按下命令按鈕進行搜索:

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"/> 

這也給渴望的結果。