JSF RE 1.2 と facelets で RichFaces 3.3.1 を使用しています。rich:datascroller に接続された rich:dataTable の HTML 生成に奇妙な問題があります。
<h:form id="br"> ... <rich:datascroller id="scrt" page="#{searchBookings.page}" stepControls="hide" renderIfSinglePage="false" for="bt" align="left" reRender="ttips,bt"/> <rich:dataTable id="bt" 行="20" レンダリングされた="#{!空の searchBookings.bookings}" 値="#{searchBookings.bookings}" var="行" バインディング="#{searchBookings.table} "> ....
ページが初めて読み込まれると、すべてがうまく機能します。同じページにもう一度アクセスすると、データスクローラーを介してページを変更しても、データテーブルが更新されなくなります。更新ボタンを押すと問題が解決します。
a4j:log を追加すると、次の警告が明らかになりました。
warn[14:50:07,259]: ID br:bt の応答による置換のノードがドキュメントに見つかりません
実際、HTML を調べると、「正しい」ページは次のようになります。
<table class="dr-table リッチテーブル" id="br:bt" ....
「悪い」ページは次のようになります。
<table class="dr-table リッチテーブル" id="br:bt:0" ....
ID の末尾に「:0」があることに注意してください。何が原因でしょうか?
ご意見ありがとうございます。