我正在使用带有JSF RE 1.2和facelets的RichFaces 3.3.1。 我有一个奇怪的问题:生成一个富的HTML:dataTable连接到一个rich:datascroller。
<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" rendered="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table}"> ....
第一次加载页面时,一切都运行良好。如果我第二次访问同一页面,通过datascroller更改页面不会再刷新数据表。点击刷新按钮可以解决问题。
添加a4j:log显示此警告:
warn[14:50:07,259]: Node for replace by response with id br:bt not found in document
确实,在检查HTML时,“正确”页面如下所示:
<table class="dr-table rich-table " id="br:bt" ....
“坏”页面看起来像这样:
<table class="dr-table rich-table " id="br:bt:0" ....
注意ID末尾的“:0”,它不应该在那里。可能导致这种情况的原因是什么?
感谢您的任何意见。
答案 0 :(得分:1)
table.setRowIndex(0);
我打算做的是
table.setFirst(0);
前者显然让生成器假设他正在生成行,所以他返回一个行id,追加“:0”。不知道这只会影响第二次生成页面的时间。希望这对其他人有用。