1

rich:dataTable ページングで提供されている解決策を試しました - rich:datascroller の訪問済みページをマークしますが、Rich Face 4.3.4 では機能しませんでした。

データスクローラーのページ属性も試しました。データスクローラーのページ属性を実装する私のコードは次のとおりです。

 <h:form id="mainForm">
     <rich:dataScroller for="itemDataTable" maxPages="30" execute="itemDataTable" page="#{itemsController.pageIndex}"/>                                 
     <rich:dataTable rowKeyVar="rkVar" rows="15" id="itemDataTable" value="#{itemsController.itemDM}" var="r">
     <f:facet name="footer">
        <h:outputText id="pageNumberOutPutText" value="#{itemsController.pageIndex}"/>
     </f:facet>
        <h:column id="setValue">
            <h:inputText id="finalItem" valueChangeListener="#{itemsController.recalculate()}" value="#{r.items.prices}"/>
        </h:column>
        ...
        ...
    <!-- other columns --> 
    </rich:dataTable>
    <rich:dataScroller for="itemDataTable" maxPages="30" execute="itemDataTable" page="#{itemsController.pageIndex}"/>                                      
</h:form>

私は itemsController クラスに次のスコープを持つそれぞれのゲッターとセッターを持っています:

@ManagedBean
@ViewScoped

pageIndex は最初は 1 に設定されています。

private int pageIndex = 1;

そして、次を使用して現在のページ番号を警告しようとしました:

alert('You are in page : ' + $('#mainForm\\:itemDataTable\\:pageNumberOutPutText').val());

しかし、アラートは1つだけです。また、次のページをクリックしたり、他のページをクリックしたりしても、データテーブルフッターのoutputTextには1つしか表示されません。

とりわけ、私がやりたかったことは、JQuery を使用して現在のページ番号を通知することだけです。また、可能であれば、これにゲッターとセッターを使用したくありません。Jquery を使用して現在のページ番号を取得する方法を知りたかったのです。

4

2 に答える 2

1

ビューの適切な部分を更新する ajax 要求で再レンダリングする領域を指定します。例えば:

<rich:dataScroller render="pageNumberOutPutText"/>

于 2014-02-10T13:38:20.790 に答える
0

現在のページ番号は、データスクローラーをサポートする JS オブジェクトにあります。次の方法で取得できます。

#{rich:component('scrollerId')}.currentPage
于 2014-02-04T10:56:02.453 に答える