Tabella Dojo non riprodotta in IE6
-
05-07-2019 - |
Domanda
Sto cercando di usare le checkBox Dojo (1.3) per far apparire / nascondere le colonne in una griglia Dojo visualizzata sotto le checkBox. Ho avuto quella funzionalità per funzionare bene, ma volevo organizzare le mie checkBox un po 'meglio. Quindi ho provato a metterli in un tavolo. La mia funzione dojo.addOnLoad è simile a questa:
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);
});
La cosa frustrante è:
- Usando il debugger Dojo posso vedere che l'HTML viene generato correttamente per la tabella.
- Posso prendere quell'HTML e mettere solo la tabella in un file HTML vuoto e il rendering delle checkBox nella tabella va bene.
- Il rendering della pagina è corretto in Firefox, ma non in IE6.
L'HTML che viene generato è simile al seguente:
<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>
Avrei pubblicato sui forum ufficiali DOJO, ma dice che sono deprecati e stanno usando una mailing list ora. Hanno detto che se una mailing list non funziona per te, usa StackOverflow.com. Quindi eccomi qui!
Soluzione
Sembra che ti sia dimenticato di creare un <tbody>
elemento.
Altri suggerimenti
Ho riscontrato anche questo problema durante il tentativo di generare una tabella utilizzando dojo in IE7. L'html è presente ma non viene visualizzato nulla. Ancora una volta, la soluzione è usare i tag thead, tbody.