我正在尝试使用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);
});

令人沮丧的是:

  1. 使用Dojo调试器,我可以看到正在为表格正确生成HTML。
  2. 我可以使用该HTML并将该表放在一个空的HTML文件中,它会使表中的checkBox正常。
  3. 页面在Firefox中正确呈现,而不是IE6。
  4. 正在生成的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。所以,我来了!

有帮助吗?

解决方案

您似乎忘了创建<tbody>元素。

其他提示

尝试在IE7中使用dojo生成表时,我也遇到了这个问题。 html在那里,但没有呈现。同样,解决方案是使用thead,tbody标签。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top