我正在尝试使用Dojo(1.3)checkBoxes使列显示/隐藏在checkBoxes下面显示的Dojo Grid中。我得到了这个功能,但我想更好地组织我的checkBoxes。所以我试着将它们放在一张桌子里。我的dojo.addOnLoad函数如下所示:
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);
});
令人沮丧的是:
正在生成的HTML如下所示:
<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>
我会发布到官方的DOJO论坛,但它说它们已被弃用,现在他们正在使用邮件列表。他们说如果邮件列表不适合您,请使用StackOverflow.com。所以,我来了!
答案 0 :(得分:0)
您似乎忘了创建<tbody>
元素。
答案 1 :(得分:0)
尝试在IE7中使用dojo生成表时,我也遇到了这个问题。 html在那里,但没有呈现。同样,解决方案是使用thead,tbody标签。