Pregunta

Estoy tratando de usar Dojo (1.3) checkBoxes para hacer que las columnas aparezcan / se oculten en un Dojo Grid que se muestra debajo de los checkBoxes. Obtuve esa funcionalidad para que funcione bien, pero quería organizar mis checkBoxes un poco mejor. Así que intenté ponerlos en una mesa. Mi función dojo.addOnLoad tiene este aspecto:

dojo.addOnLoad(function(){
    var checkBoxes = [];
    var container = dojo.byId('checkBoxContainer');
    var table = dojo.doc.createElement("table");
    var row1= dojo.doc.createElement("tr");
    var row2= dojo.doc.createElement("tr");
    var row3= dojo.doc.createElement("tr");

    dojo.forEach(grid.layout.cells, function(cell, index){
        //Add a new "td" element to one of the three rows
    });

    dojo.place(addRow, table);
    dojo.place(removeRow, table);
    dojo.place(findReplaceRow, table);

    dojo.place(table, container);
});

Lo que es frustrante es:

  1. Usando el depurador Dojo puedo ver que el HTML se está generando correctamente para la tabla.
  2. Puedo tomar ese HTML y poner solo la tabla en un archivo HTML vacío y hace que las casillas de verificación en la tabla estén bien.
  3. La página se representa correctamente en Firefox, solo que no en IE6.

El HTML que se genera se ve así:

<div id="checkBoxContainer">
    <table>
        <tr>
            <td>
                <div class="dijitReset dijitInline dijitCheckBox"
                    role="presentation" widgetid="dijit_form_CheckBox_0"
                    wairole="presentation">
                    <input class="dijitReset dijitCheckBoxInput"
                        id="dijit_form_CheckBox_0"
                        tabindex="0" type="checkbox"
                        name="" dojoattachevent=
                        "onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick"
                        dojoattachpoint="focusNode" unselectable="on"
                        aria-pressed="false"/>
                </div>
                <label for="dijit_form_CheckBox_0">
                    Column 1
                </label>
            </td>
            <td>
                <div class="dijitReset dijitInline dijitCheckBox"
                    role="presentation" widgetid="dijit_form_CheckBox_1"
                    wairole="presentation">
                    <input class="dijitReset dijitCheckBoxInput"
                        id="dijit_form_CheckBox_1"
                        tabindex="0" type="checkbox"
                        name="" dojoattachevent=
                        "onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick"
                        dojoattachpoint="focusNode" unselectable="on"
                        aria-pressed="false"/>
                </div>
            </td>
        </tr>
        <tr>
            ...
        </tr>
    </table>
</div>

Hubiera publicado en los foros oficiales de DOJO, pero dice que están en desuso y que ahora están usando una lista de correo. Dijeron que si una lista de correo no funciona para usted, use StackOverflow.com. ¡Así que aquí estoy!

¿Fue útil?

Solución

Parece que olvidó crear un elemento <tbody>.

Otros consejos

También encontré este problema al intentar generar una tabla usando dojo en IE7. El html está ahí pero no se muestra nada. Nuevamente, la solución es usar las etiquetas thead, tbody.

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