RichFaces: Problema con la generazione HTML di datascroller / DataTable
-
22-09-2019 - |
Domanda
Sto utilizzando RichFaces 3.3.1 con JSF RE 1.2 e Facelets. Ho un problema strano con la generazione HTML di una ricca: dataTable collegato ad un ricco:. 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 prima volta che la pagina viene caricata, tutto funziona bene. Se mi visita la stessa pagina una seconda volta, cambiando le pagine tramite il datascroller non aggiorna il datatable più. Colpire il pulsante di aggiornamento risolve il problema.
L'aggiunta di a4j: LOG rivelato questo avvertimento:
warn[14:50:07,259]: Node for replace by response with id br:bt not found in document
In effetti, quando si ispeziona il codice HTML, la pagina "corretto" è simile al seguente:
<table class="dr-table rich-table " id="br:bt" ....
considerando che la pagina "cattivo" si presenta così:
<table class="dr-table rich-table " id="br:bt:0" ....
Si noti la ": 0" alla fine della ID, non dovrebbe essere lì. Quale potrebbe essere la causa?
Grazie per ogni ingresso.
Soluzione
ok trovato. da qualche parte nel backing bean ho fatto
table.setRowIndex (0);
quello che volevo fare era
table.setFirst (0);
Il primo apparentemente rende il generatore assumere sta generando righe, per cui restituisce una riga id, aggiungendo ": 0". Nessuna idea di come questo riguarda solo la seconda volta che la pagina viene generata però. Spero che questo è utile a qualcun altro una volta.