0

我将 RichFaces 3.3.1 与 JSF RE 1.2 和 facelets 一起使用。我对连接到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" rows="20" 渲染="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table} ">
……

第一次加载页面时,一切正常。如果我再次访问同一页面,通过数据滚动器更改页面不再刷新数据表。点击刷新按钮可以解决问题。

添加 a4j:log 显示此警告:

警告 [14:50:07,259]:用于替换为 id 为 br:bt 的响应的节点在文档中未找到

事实上,在检查 HTML 时,“正确”的页面如下所示:

  <table class="dr-table rich-table" id="br:bt" ....

而“坏”页面如下所示:

  <table class="dr-table rich-table" id="br:bt:0" ....

请注意 ID 末尾的“:0”,它不应该在那里。这可能是什么原因造成的?

感谢您的任何意见。

4

1 回答 1

1

好的,找到了。我做的支持豆的某个地方

table.setRowIndex(0);

我的意思是

table.setFirst(0);

前者显然使生成器假设他正在生成行,因此他返回一个行 ID,并附加“:0”。不知道这只会影响页面的第二次生成。希望这对其他人有用。

于 2010-01-25T15:31:16.623 回答