Pregunta

He creado una solución simple para las columnas / filas con una rica expandibles: tabla de datos y rica: columna, que es similar al siguiente: mejor manera de hacer una subtabla expansible / colapsable con una rica: dataTable

El código facelets está (simplificado) como sigue:

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

Esto proporciona una tabla con la columna expandida cuando se hace clic en un cuadro de detalle, la columna de datos-se hace debajo de la fila actual. expandAllAction sobre copias de frijol sólo itera sobre las filas y fija su atributo ampliado para el mismo que en la copia de la haba, de este modo la expansión / unexpanding todas las filas.

Sin embargo, esto no funciona correctamente con Internet Explorer (IE7 o IE8), aunque funciona con FF y Chrome. Si el usuario hace clic en casilla de verificación, nada se hace hasta que se hace clic en cualquier otro lugar en la página. Copia de frijol y los objetos están siendo actualizadas, pero no re-representación hasta que se hace clic en algún otro elemento.

Es esto algo malvado de nuevo con IE o simplemente un error con RichFaces? He encontrado algún problema similar con IE y tbody, pero que debería haber sido fijado. Me puede presentar un informe de error, pero hasta que eso, ¿hay alguna solución sencilla?

RichFaces versión es 3.3.1 y está ejecutado en Jboss 4.2.1GA y liado Sun RI.

¿Fue útil?

Solución

Trate de usar otro evento como onclick
De tldoc de selectBooleanCheckBox : onchange es "código Javascript cuando este elemento pierde el foco y su valor se ha modificado desde que obtuvo el foco." y onclick es "código Javascript ejecuta cuando un botón del puntero se hace clic sobre este elemento."

homóloga pregunta . Un comentario de BalusC podría confirmar mi suposición de "en el caso de las radios / casillas de verificación del evento de cambio está en ciertos navegadores única disparados si hace clic en 2 veces"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top