Demande aide pour optimiser algo insertion cellule tableau

Résolu
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 29 juin 2007 à 16:48
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 2 juil. 2007 à 10:14
Bonjour,

Je voudrais savoir si quelqu'un pourrait m'aider à optimiser mon algo d'ajout d'une ligne dans un tableau. Mon algo marche pour un tableau qui contient 2 colonnes. Le problème est que dès lors que je dépasse 2 colonnes dans mon tableau, alors dans la ligne ajoutée, la dernière cellule n'apparaît pas.

Dans ma fonction addRow(pos), je lui passe en paramètre la position à laquelle je veux insérer ma ligne dans le tableau sélectionné. Voici ma fonction, en espérant que quelqu'un pourra m'aider à régler ce problème.

function addRow(pos)
{
   if (document.selection.type == 'Control')
   {
     range=document.selection.createRange();     if (range.length 1 && (range(0).tagName 'TABLE' || range(0).tagName == 'table'))
     {
    var oldId=range(0).id;
    range(0).id="tableNow";
    var tbl = document.getElementById('tableNow');
     }
   }
 
 var row = tbl.insertRow(pos);


 var cellLeft = row.insertCell(0);
 
 range(0).id=oldId;
 //Ajout d'une cellule de droite
 var cellRight = row.insertCell();  
}

Jarod_Delaware

4 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 juil. 2007 à 09:55
je ne vois nulle part que tu insères plusieurs colonnes.

ch'tit exemple ?

<script type="text/javascript">
    var lig,tb=document.getElementById("tb1");
    for ( var l=0;l<5;l++ )
    {   lig=tb.insertRow(l);
        for ( var c=0;c<5;c++ )
        { lig.insertCell(lig.cells.length).innerHTML="L"+l+"C"+c;    }
    }
</script>

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juil. 2007 à 11:31
Bonjour,

    var lig=tableau.insertRow(adresse);      insère une ligne
    var col=lig.insertCell(lig.cells.length);      insère une colonne en fin

    quelques infos ici :
        http://www.javascriptfr.com/codes/TRAITEMENTS-SUR-TABLEAUX_26660.aspx

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
2 juil. 2007 à 09:46
Salut Bultez,

Merci pour ta réponse. J'ai essayé la ligne de code que tu m'as posté mais ça marche pas. Lorsque je veux insérer une ligne supplémentaire à mon tableau, il insére qu'une seule cellule sur la ligne entière. Est ce que tu pourrais m'aider, je vois pas mon erreur.

function addRow(pos)
{
   if (document.selection.type == 'Control')
   {
     range=document.selection.createRange();     if (range.length 1 && (range(0).tagName 'TABLE' || range(0).tagName == 'table'))
     {
    var oldId=range(0).id;
    range(0).id="tableNow";
    var tbl = document.getElementById('tableNow');
  }
   }
 
 var row = tbl.insertRow(pos);


 var cellLeft = row.insertCell(0);
 
 range(0).id=oldId;
 //Ajout d'une cellule de droite
 //var cellRight = row.insertCell();
 
 //row.insertCell(row.cells.length).innerHTML=(tbl.rows.length-1);
 var lig=tbl.insertRow(pos);     // insère une ligne
    var col=lig.insertCell(lig.cells.length);     // insère une colonne en fin  
}

Jarod_Delaware
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
2 juil. 2007 à 10:14
Merci beaucoup pour ton exemple et ton aide. Je me suis inspiré de ton tutorial sur la manipulation des tableaux et de ton petit exemple. Du coups ça marche maintenant, ça insère bien la ligne avec toutes les cellules à l'endroit voulu

var l = tbl.insertRow(pos);
  l.insertCell(l.cells.length).innerHTML=(tbl.rows.length-1);
 for (var c=1;c<tbl.rows[0].cells.length;c++) //.. ajouter les colonnes ..
 {
  l.insertCell(l.cells.length).innerHTML=(tbl.rows.length-1);
 } 

Merci énormément pour ton aide. Qu'est ce je ferais sans toi , lol.
 

Jarod_Delaware
0
Rejoignez-nous