代码之家  ›  专栏  ›  技术社区  ›  geert3

RichFaces:数据滚动器/数据表的HTML生成问题

  •  0
  • geert3  · 技术社区  · 15 年前

    我将RichFaces3.3.1与JSFRe1.2和Facelets结合使用。 我对Rich:DataTable与Rich:DataScroller的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" rendered="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table}">
    ....
    

    第一次加载页面时,一切都运行良好。如果我第二次访问同一个页面,通过数据滚动器更改页面将不再刷新数据表。点击刷新按钮解决了这个问题。

    添加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”,它不应该在那里。是什么导致的?

    谢谢你的意见。

    1 回复  |  直到 7 年前
        1
  •  1
  •   geert3    15 年前

    好的,找到了。 在我做的后盾豆子里的某个地方

    表.setrowindex(0);

    我的意思是

    表.setfirst(0);

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