Frage

Ich habe eine einfache Lösung für expandierbares Spalten / Zeilen mit reichen: Datentabelle und reich: Spalte, die ähnlich ist: Der beste Weg, eine machen erweiterbare / reduzierbare untergeordnete Tabelle mit reichen: Datatable

Die Facelets Kode (vereinfacht) wie folgt:

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

Dies eine Tabelle mit erweiterten Spalt bereitstellt, wenn Sie ein Detailfeld klicken, die Details-Spalte unterhalb der tatsächlichen Zeile gemacht. expandAllAction auf Backing Bean iteriert nur über Zeilen und setzt ihre erweiterten Attribut auf die gleiche wie im Backing Bean, so erweitert / unexpanding alle Zeilen.

Doch das funktioniert nicht richtig mit dem Internet Explorer (IE7 oder IE8), obwohl es mit FF und Chrome funktioniert. Wenn der Benutzer auf Checkbox klickt, wird nichts gemacht, bis er an einem anderen Ort auf der Seite klickt. Backing Bean und Objekte aktualisiert werden, aber keine Re-Rendering, bis ein anderes Element angeklickt wird.

Ist das etwas Böse wieder mit IEs oder einfach nur einen Fehler mit Richfaces? Ich fand einige ähnliches Problem mit IE und tbody, aber es sollte festgelegt worden sind. Ich kann einen Fehlerbericht, aber bis dahin ist es eine einfache Abhilfe?

Richfaces-Version ist 3.3.1 und es läuft auf Jboss 4.2.1GA und gebündelt Sun RI.

War es hilfreich?

Lösung

Versuchen Sie ein anderes Ereignis wie onclick
verwenden Von tldoc von selectBooleanCheckBox : onchange ist „Javascript-Code ausgeführt, wenn dieses Element des Fokus verliert und sein Wert seit gewinnt Fokus geändert wurde.“ und onclick ist „Javascript-Code ausgeführt wird, wenn ein Zeiger Taste über dieses Element angeklickt wird.“

Gestern war eine ähnliche Frage . Ein Kommentar von BalusC könnte meine Vermutung bestätigen „bei Radios / Optionen, um das Änderungsereignis in bestimmten Browsern ist nur gefeuert, wenn Sie 2 mal auf“

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top