Bonjour
En javascript, j'ajoute des lignes à une table déclarée en Html
Cette table a 2 colonnes avec du texte (X et Y) et une checked box (Enabled)
Voici la table
Voici le code pour faire l'ajout d'une ligne
Maintenant je veux trier cette table en fonction de la valeur de "Enabled".
Le tri est un quicksort à base de insertBefore pour permuter les lignes.
coor.tBodies[0].insertBefore(trs, trs[j]);
avec
trs = coor.tBodies[0].getElementsByTagName("tr");
Avec FF3, pas de problème, le tri est fait, le tri inverse marche aussi très bien.
Avec IE6, petit problème, les valeurs des checked box, et seulement elles, disparaissent ET le tri est correct.
Un alert() avant et après montre que le problème semble venir de l'insertBefore.
Merci de me donner une idée.
Modifié par alain_m (22 Sep 2009 - 18:43)
En javascript, j'ajoute des lignes à une table déclarée en Html
Cette table a 2 colonnes avec du texte (X et Y) et une checked box (Enabled)
Voici la table
<table name="coor" id="coor" class="configTable">
<caption>Coordonnées</caption>
<tr>
<th>X</th>
<th>Y</th>
<th>Enabled</th>
</tr>
</table>
Voici le code pour faire l'ajout d'une ligne
{
currentRow = addRow();
currentRow.cells["X"].lastChild.value = "xxxx";
currentRow.cells["Y"].lastChild.value = "yyyy";
if (condition == true)
{
currentRow.cells["Enabled"].lastChild.checked = true;
}
else
{
currentRow.cells["Enabled"].lastChild.checked = false;
}
}
function addRow()
{
var currentControl, currentCell, currentRow;
var cellIndex = -1;
currentRow = coor.insertRow(coor.rows.length);
// X
currentCell = currentRow.insertCell(++cellIndex);
currentCell.id = "X";
// Y
currentCell = currentRow.insertCell(++cellIndex);
currentCell.id = "Y";
// enabled
currentCell = currentRow.insertCell(++cellIndex);
currentCell.id = "Enabled";
currentControl = document.createElement("input");
currentControl.type = "checkbox";
currentCell.appendChild(currentControl);
return currentRow;
}
Jusque la, ca va.Maintenant je veux trier cette table en fonction de la valeur de "Enabled".
Le tri est un quicksort à base de insertBefore pour permuter les lignes.
coor.tBodies[0].insertBefore(trs, trs[j]);
avec
trs = coor.tBodies[0].getElementsByTagName("tr");
Avec FF3, pas de problème, le tri est fait, le tri inverse marche aussi très bien.
Avec IE6, petit problème, les valeurs des checked box, et seulement elles, disparaissent ET le tri est correct.
Un alert() avant et après montre que le problème semble venir de l'insertBefore.
Merci de me donner une idée.
Modifié par alain_m (22 Sep 2009 - 18:43)