質問
Seam-JSFV1.2-EJB3 Webアプリを開発しています。各行にデータテーブルとチェックボックスがあります。さらに、テーブルの下部にもDataScrollerがあります。
私の問題は、Scrollerから次のページ番号をクリックすると、データテーブルの最初のページで選択されたチェックボックスがなくなったことです。つまり、選択されたとしても、次のページをクリックして選択されています。スクラーをクリックして、最初のページに再び戻ることで表示されます。
その問題について何か考えはありますか?ケースをクリアするために、以下にコードを添付しました。
<rich:dataTable
id="apiV2ProductList" rows="10" var="_apiV2Product"
value="#{apiV2ProductList.resultList}"
rendered="#{not empty apiV2ProductList.resultList}" reRender="ds">
<rich:column>
<f:facet name="header">
<h:selectBooleanCheckbox id="selectionCheckAll" onclick="selectAll()" />
</f:facet>
<h:selectBooleanCheckbox id="selectionCheck" onclick="increase(this)" value="#{_apiV2Product.selectValue}" >
</h:selectBooleanCheckbox>
</rich:column>
...
<f:facet name="footer">
<rich:datascroller id="ds" renderIfSinglePage="false">
</rich:datascroller>
</f:facet>
よろしくお願いします。バリス
解決 2
Scroller間にA4Jサポートタグを追加すると、私の問題が解決しました。
<f:facet name="footer">
<rich:datascroller id="ds" renderIfSinglePage="false">
<a4j:support event="onpagechange"/>
</rich:datascroller>
</f:facet>
しかし、もう1つのことは、JQueryを使用してテーブルをスタイルしています(Ex。MouseOver and Out)。今回は、テーブルの次のページをクリックすると、スタイルがなくなりました。
どんな助けも素晴らしいことです、事前に感謝します。
** PS:ところで、この種の問題のために自分で解決策を見つけることが不可能になるということです。あなたの創造は常に解決するのに十分ではないかもしれません(少なくとも私の例では、A4J:サポートのものを追加します)私は専門家に尋ねています、私たちは自分自身でそのようなものをどのように扱うことができますか... **
他のヒント
拡張できます org.richfaces.renderkit.html.DatascrollerTemplate
FACESCONFIG.XMLに以下の構成を含むコンポーネントを追加して、独自のスタイリング用の独自のDataScrollerを作成します
<component>
<component-type>exCustHtmlDatascroller</component-type>
<component-lass>org.jsf.common.ui.EXCustHtmlDatascroller</component-class>
</component>
<render-kit>
<renderer>
<component-family>org.richfaces.Datascroller</component-family>
<renderer-type>exCustDataScrollerTemplate</renderer-type>
<renderer- class>org.jsf.common.ui.EXCustDataScrollerTemplate</renderer-class>
</renderer>
</render-kit>
データテーブルをスタイリングするためにjQueryは必要ありません
<rich:dataTable id="dataTable" var="x"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
削除されているスタイルで見た問題は、Ajaxの性質とテーブルのレンダリング方法によるものです。
何らかの形のページオンロードに基づいて最初のスタイリングコールを起動していると仮定すると、ページが初めてレンダリングされると、スタイルが適用されます。ただし、Paginatorで「次の」ボタンをクリックすると、新しいHTMLをたくさん引き下げ、テーブルの古いHTMLを新しい更新された情報に置き換えます。 Jqueryがスタイルを適用したので、あなたが見ている問題はあなたがスタイリングを見たということです 年 ノードは、rederenderで、それらのノードがスタイリングとともに完全に捨てられます。 「スタイリング」メソッドを呼び出すためにフックを把握し、テーブルが再レンダリングされた後にその呼び出しを再実行するだけです。
一般的に、A4J:ステータスタグを使用し、オンスタートまたはオンストップをセットアップしてテーブルを再配分します。