Frage

Ich versuche, Dojo (1.3) Ankreuzfelder zu verwenden, um Spalten in einem Dojo Grid erscheinen / auszublenden zu machen, die unterhalb dem Kontrollkästchen angezeigt wird. Ich habe diese Funktionalität zu funktionieren, aber ich wollte meine Checkbox ein wenig besser organisieren. Also habe ich versucht, sie in einem Tisch. Meine dojo.addOnLoad Funktion sieht wie folgt aus:

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

Was ist frustrierend ist:

  1. den Dojo-Debugger kann ich sehen, dass die HTML richtig für die Tabelle wird erstellt.
  2. Ich kann diese HTML nehmen und nur die Tabelle in einer leeren HTML-Datei setzen und es macht die Kontrollkästchen in der Tabelle gut.
  3. Die Seite macht richtig in Firefox, nur nicht IE6.

Der HTML-Code, der aussieht wie so erzeugt wird:

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

Ich hätte die offiziellen DOJO Foren gepostet, aber es sagt, dass sie veraltet sind und sie verwenden nun eine Mailing-Liste. Sie sagten, wenn eine Mailing-Liste nicht für Sie arbeiten, verwenden StackOverflow.com. So, hier bin ich!

War es hilfreich?

Lösung

Es sieht aus wie Sie ein <tbody> Element zu erstellen vergessen haben.

Andere Tipps

ich auch dieses Problem auftreten, wenn Sie versuchen, eine Tabelle in IE7 mit Dojo zu erzeugen. Die html gibt es aber nichts gemacht wird. Auch hier ist die Lösung Thead zu verwenden, tbody-Tags.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top