0

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」があることに注意してください。何が原因でしょうか?

ご意見ありがとうございます。

4

1 に答える 1

1

わかりました。バッキングビーンのどこかで私がやった

table.setRowIndex(0);

私がするつもりだったのは

table.setFirst(0);

前者はどうやらジェネレーターに行を生成していると想定させるため、":0" を追加して行 ID を返します。ただし、これがページが2回目に生成されたときにのみどのように影響するかはわかりません。これが他の誰かに一度役立つことを願っています。

于 2010-01-25T15:31:16.623 に答える