Richfaces: Problème avec la génération HTML de datascroller / datatable
-
22-09-2019 - |
Question
J'utilise RichFaces 3.3.1 avec JSF RE 1.2 et facelets. J'ai un problème étrange avec la génération HTML d'une riche: dataTable relié à un riche. 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}"> ....
La première fois que la page se charge, tout fonctionne bien. Si je visite la même page une seconde fois, en changeant les pages via le datascroller ne rafraîchit pas le datatable plus longtemps. Frapper le bouton d'actualisation résout le problème.
Ajout a4j: log révélé cet avertissement:
warn[14:50:07,259]: Node for replace by response with id br:bt not found in document
En effet, lors de l'inspection du HTML, la page "correcte" ressemble à ceci:
<table class="dr-table rich-table " id="br:bt" ....
Alors que la page "mauvais" ressemble à ceci:
<table class="dr-table rich-table " id="br:bt:0" ....
Remarquez le « : 0 » à la fin de l'ID, il ne devrait pas être là. Ce qui pourrait être la cause?
Merci pour toute entrée.
La solution
ok trouvé. quelque part dans le backing bean je l'ai fait
table.setRowIndex (0);
ce que je voulais faire était
table.setFirst (0);
L'ancien fait apparemment le générateur suppose qu'il génération de lignes, de sorte qu'il retourne un identifiant de ligne, annexant « : 0 ». Aucune idée de comment cela affecte seulement la deuxième fois que la page est générée bien. Espérons que cela est utile à quelqu'un d'autre fois.