Pergunta

Eu estou tentando usar Dojo (1.3) caixas de seleção para fazer aparecer colunas / esconder em uma grade Dojo que é exibido abaixo das caixas de seleção. Eu tenho essa funcionalidade para funcionar bem, mas eu queria organizar minhas caixas de seleção um pouco melhor. Então, eu tentei colocá-los em uma tabela. Minha função dojo.addOnLoad esta aparência:

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);
});

frustrante do que é:

  1. Usando o Dojo depurador eu posso ver que o HTML está sendo corretamente gerados para a tabela.
  2. eu posso tomar esse HTML e colocar apenas a tabela em um arquivo HTML vazio e ele processa as caixas de seleção na tabela apenas multa.
  3. A página renderiza corretamente no Firefox, mas não IE6.

O HTML que está a ser gerado se parece com isso:

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

Eu teria postado para os fóruns oficiais Dojo, mas diz que está obsoleto e eles estão usando uma lista de discussão agora. Eles disseram que se uma lista de discussão não funciona para você, use StackOverflow.com. Então aqui estou!

Foi útil?

Solução

Parece que você esqueceu de criar um elemento <tbody>.

Outras dicas

Eu também encontrei este problema ao tentar gerar uma tabela utilizando dojo no IE7. O html está lá, mas nada é processado. Novamente, a solução é usar thead, tbody etiquetas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top