Question

J'ai créé une solution simple pour les colonnes / rangées extensibles avec riches: datatable et riche: la colonne, qui est similaire à: La meilleure façon de faire un sous-table extensible / pliable avec riche: dataTable

Le code facelets est (simplifié) comme suit:

<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>

Ceci fournit une table avec une colonne étendue lorsque vous cliquez sur une boîte de détail, les détails colonne est rendu sous la ligne réelle. expandAllAction sur haricot de support seulement une itération sur les lignes et définit leur attribut étendu à la même qu'en soutenant le haricot, l'expansion / unexpanding ainsi toutes les lignes.

Toutefois, cela ne fonctionne pas correctement avec Internet Explorer (IE7 ou IE8), bien qu'il fonctionne avec FF et Chrome. Si l'utilisateur clique sur la case, rien est rendu jusqu'à ce qu'il clique sur un autre endroit de la page. Sauvegarde haricots et les objets sont mis à jour, mais pas de re-rendu jusqu'à ce qu'un autre élément est cliqué.

Est-ce quelque chose de nouveau méchant avec ou juste un IEs bug avec RichFaces? J'ai trouvé une question similaire avec IE et tbody, mais il aurait dû être fixée. Je peux déposer un rapport de bogue, mais jusqu'à ce que, une solution de contournement est-il simple?

La version 3.3.1 est RichFaces et il est exécuté sur Jboss 4.2.1GA et empaqueté Sun RI.

Était-ce utile?

La solution

Essayez d'utiliser un autre événement comme onclick
De tldoc de selectBooleanCheckBox : onchange est « code Javascript exécuté lorsque cet élément perd le focus et sa valeur a été modifiée depuis son point. » et onclick est « code Javascript exécuté quand un bouton de pointeur est cliqué sur cet élément. »

Hier était un question similaire. Un commentaire de BalusC pourrait confirmer mon hypothèse « dans le cas des radios / cases à cocher l'événement de changement est dans certains navigateurs ne tirés si vous cliquez 2 fois »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top