Domanda

Ho creato una soluzione semplice per colonne / righe con ricco espandibili: datatable e ricco: colonna, che è simile a: Modo migliore per fare un espandibile / sottotabella pieghevole con una ricca: dataTable

Il codice facelets è (semplificato) come segue:

<rich:dataTable id="detailtable"
    value="#{bean.model}"
    var="row"
    columns="2">
    <rich:column id="detail-check">
        <f:facet name="header">
            <h:selectBooleanCheckbox value="#{bean.expandAll}">
                <a4j:support event="onchange" action="#{bean.expandAllAction}"
                    reRender="detailtable" />
            </h:selectBooleanCheckbox>
        </f:facet>
        <h:selectBooleanCheckbox value="#{row.expanded}">
            <a4j:support event="onchange" reRender="detailtable" />
        </h:selectBooleanCheckbox>
    </rich:column>
    <!-- actual data column -->
    <rich:column id="detail-column"
        rendered="#{row.expanded}"
        breakBefore="true"
        colspan="2">
        <!-- detail column content -->
    </rich:column>
</rich:dataTable>

Questo fornisce una tabella con la colonna espansa quando si fa clic su una casella di dettaglio, il dettaglio colonna è reso sotto la riga attuale. expandAllAction sul backup fagiolo soli itera su righe e imposta il loro attributo ampliato per lo stesso come in appoggio fagiolo, ampliando così / unexpanding tutte le righe.

Tuttavia questo non funziona correttamente con Internet Explorer (IE7 o IE8), anche se funziona con FF e Chrome. Se l'utente fa clic sul checkbox, nulla è reso fino a quando non scatta in qualsiasi altro luogo sulla pagina. Backup di fagioli e gli oggetti sono in fase di aggiornamento, ma non ri-di rendering fino a qualche altro elemento viene cliccato.

E 'questo qualcosa malvagio di nuovo con IE o semplicemente un bug con RichFaces? Ho trovato qualche problema simile con IE e tbody, ma avrebbe dovuto essere risolto. Posso inviare una segnalazione di bug, ma fino a quel, c'è qualche soluzione semplice?

Versione RichFaces è 3.3.1 ed è eseguito su Jboss 4.2.1GA e impacchettato Sun RI.

È stato utile?

Soluzione

Prova utilizzare un altro evento come onclick
Da tldoc di selectBooleanCheckBox : onchange è "codice Javascript eseguito quando questo elemento perde il focus e il suo valore è stato modificato dopo guadagnando attenzione." e onclick è "codice Javascript eseguito quando un pulsante del puntatore si fa clic su questo elemento."

Ieri è stata una simile domanda . Un commento di BalusC potrebbe confermare la mia ipotesi "in caso di radio / checkboxes l'evento di modifica è in alcuni browser sparati solo se si fa clic su 2 volte"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top