IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Comment intégrer un tableau dans un tableau ?


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut [C#] Comment intégrer un tableau dans un tableau ?
    Voici mon problème, je souhaiterais faire un tableau dans un autre tableau
    Car je voudrais faire des sauts de ligne pour afficher une autre couleurs sur chaque ligne.

    Petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    HtmlTableCell MaCase = new HtmlTableCell();
    MaCase.InnerHtml = "<tr><td>";
    for (int ligne = 0;ligne<= 9;ligne++)
                {
                    HtmlTableRow Maligne2 = new HtmlTableRow();
                    for (int colonne =0;colonne<= 9;colonne++)
                    {
                        HtmlTableCell MaCase2 = new HtmlTableCell();
                        MaCase2.Width = "10%";
                        MaCase2.InnerHtml = "<tr><td bgcolor=\"/#FFFF00\"</td></tr>";
                        Maligne2.Cells.Add(MaCase2);
                    }
                    MonTableau2.Rows.Add(Maligne);
    }
    MaCase.InnerHtml = "</tr></td>";
    MonTableau1.Rows.Add(Maligne);
    En fait le premier tableau permet que je reste sur la même ligne lors du saut de ligne dans le deuxième tableau.

    Sinon j'ai essayé de faire sans le deuxième tableau et il revient à la ligne à chaque fois.

    Je ne sais pas comment faire, vous avez une idée

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est de l'ASP.NET donc merci de poster au bon endroit

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Ok désolé, je vais donc poster mon problème la bas.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Je croyais que j'étais dans la partie
    Dotnet => Webforms & Développement Web => ASP.NET

  5. #5
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    tu veux faire deux tableaux imbriquées?
    je n'arrive pas à voir ce que tu veux faire.
    je ne vois pas pourquoi tu utilises les innerHtml ...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Je fais un tableau Html dans mon code behind car ces dimensions peuvent changer selon ce que je possède dans ma base de données.

    En fait le premier tableau va afficher une sorte de plannig avec en abscisse les plages horaires et en ordonnée les jours de la semaine. L'abscisse et l'ordonnée peuvent changer au bon vouloir de l'utilisateur. Mon deuxième tableau qui va être intégrer dans le premier va représenter les cases du premier tableau afin de pouvoir afficher les éléments de ma base de données. Dans une case je peux afficher deux éléments pour ne pas les coller les uns à la suite des autres, je fais un saut à la ligne.

    Voila à peu près ce que je souhaite faire. Le problème c'est que j'ai testé de mettre deux tableaux imbriqué l'un dans l'autre dans ma page aspx mais visual studio me génère une erreur : "Dans le cas du schéma actif, l'élément 'table' ne peut pas être imbriqué dans l'élément 'table'."

    Voici le code que j'ai mis dans ma page aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <table id="planning" runat="server">
    	<table id="MonTableau" runat="server">
    	</table>
    </table>
    En tout cas merci d'avoir répondu, j'espère t'avoir un peu plus éclairé

  7. #7
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    pour creer un nouveau tableau, tu peux faire selon cette methode la..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
           HtmlTable tab2 = new HtmlTable();
            HtmlTableRow nouvelleligne = new HtmlTableRow();
            HtmlTableCell nouvellecellule = new HtmlTableCell();
     
            nouvelleligne.Cells.Add(nouvellecellule);
            tab2.Rows.Add(nouvelleligne);
     
    MonTableau.Rows[0].Cells[0].Controls.add(tab2)
    en esperant que cela t'aura aidé... mais je trouve le procédé un peu bizarre quand meme..

  8. #8
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    la bonne structure c'est celle ci pour intégrer un tableau dans un tableau.

    <table id="planning" runat="server">
    <tr>
    <table id="MonTableau" runat="server">
    </table>
    </table>

  9. #9
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    oula j'ai appuyé sur la touche espace et ça a publié pendant que j'écrivais LOL
    BIZARRE
    donc je disais la structure adapté est celle la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <table id="planning" runat="server">
    <tr>
         <td> Entete </td>
    </tr>
    <tr>
       <td>
         <table id="MonTableau" runat="server">
     
        </table>
       </td>
    </tr>
    </table>
    C'est pour cela qu'il te génère une erreur.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Ok, merci pour vos réponses je les ai intégré toutes les deux.
    Voila ce que j'ai fait, un petit truc tout bidon à mon avis mais que je n'arrive pas à faire, je m'y perds. Un peu d'aide serait la bien venu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (ligne = 0;ligne <= 10;ligne++)  {
    	HtmlTableRow Maligne = new HtmlTableRow();
    	for (colonne =0;colonne<= 10;colonne++)  {
    		for(int i=0;i<=4;i++) {
    			HtmlTableCell MaCase = new HtmlTableCell();
    			MaCase.Width = "10%";
    			MaCase.InnerHtml = "<tr><td bgcolor=#00FF00>" + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp" + "</td></tr>";
    			Maligne.Cells.Add(MaCase);
    		}
    		planning.Rows.Add(Maligne);
    	}
    	MonTableau.Rows[ligne].Cells[colonne].Controls.Add(planning);	
    }
    Voici l'erreur généré :

    L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : index
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.ArgumentOutOfRangeException: L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : index

    J'ai bien essayer de mettre zéro à la place de ligne et colonne mais sa me renvoie la même erreur. Que faire ?

  11. #11
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    for(int ligne= 0;ligne< 5;ligne++)
                {  
                     //Création du premier tableau
                    Table tContenu = new Table();
                    //Création de la première ligne
                    TableRow trContenu = new TableRow();
     
                    //Création de la première cellule
                    TableCell tdContenu = new TableCell();
                   //Ajout de la ligne au tableau 
                   tContenu.Controls.Add(trContenu);
                    //Ajout de la cellules à la ligne
                    trContenu.Controls.Add(tdContenu);
     
                    //Création de  la ligne
                    TableRow trTranche = new TableRow();
     
                    for(int k = 0;k<=6;k++)
                    {
                        //Création de la cellule 
                        TableCell tdTranche= new TableCell();
                      //Ajout de la cellule à la ligne
                        trTranche.Controls.Add(tdTranche);
                    //Création du deuxième tableau
                        Table tContenuJour = new Table();
                      //Ajout du deuxième tableau à la celulle du premier tableau
                        tdTranche.Controls.Add(tContenuJour);
                        //Création de la ligne du deuxième tableau
                        TableRow trContenuJour = new TableRow();
                       //Création de la cellule du deuxième tableau
                        TableCell tdContenuJour = new TableCell();
                        //Ajout de la cellule à la ligne
                        trContenuJour.Controls.Add(tdContenuJour);
                       //Ajout de la ligne au deuxième tableau
                        tContenuJour.Controls.Add(trContenuJour);
                    }
                }
            }
    Voici à quoi doit ressembler ton code bien épurer pour que tu vois la structure.J'ai fait ça vite fait ^^

  12. #12
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    donc je ne t'assures pas que ça marche à 100%

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Merci je vais tester ça, je te dirais ce que sa donne.

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Bon sa ne m'affiche rien, j'ai renommé tes tableaux par le nom de mes tableaux mais rien ne s'affiche lors de l'éxécution .
    Je vais regardé sa demain car là, cela commence à me souler.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Bon je viens de réessayer et je n'arrive toujours pas à afficher quelque chose voila ce que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    for(int ligne= 0;ligne< 5;ligne++)
    			{  
    				//Création du premier tableau
    				HtmlTable planning = new HtmlTable();
    				//Création de la première ligne
    				HtmlTableRow trContenu = new HtmlTableRow();
     
                                    trContenu.InnerHtml = "www.developpez.net"; => Remarque cette ligne génère une erreur du type 'HtmlTableRow' ne prend pas en charge la propriété InnerHtml. 
     
    				//Création de la première cellule
    				HtmlTableCell tdContenu = new HtmlTableCell();
     
    				tdContenu.InnerHtml = "www.developpez.net";
    				//Ajout de la ligne au tableau 
    				planning.Controls.Add(trContenu);
    				//Ajout de la cellules à la ligne
    				trContenu.Controls.Add(tdContenu);
     
    				//Création de  la ligne
    				HtmlTableRow trTranche = new HtmlTableRow();
     
    				for(int k = 0;k<=6;k++)
    				{
    					//Création de la cellule 
    					HtmlTableCell tdTranche= new HtmlTableCell();
    					tdTranche.InnerHtml = "www.developpez.net";
    					//Ajout de la cellule à la ligne
    					trTranche.Controls.Add(tdTranche);
    					//Création du deuxième tableau
    					HtmlTable MonTableau = new HtmlTable();
    					//Ajout du deuxième tableau à la celulle du premier tableau
    					tdTranche.Controls.Add(MonTableau);
    					//Création de la ligne du deuxième tableau
    					HtmlTableRow trContenuJour = new HtmlTableRow();    
    					//Création de la cellule du deuxième tableau
    					HtmlTableCell tdContenuJour = new HtmlTableCell();
    					tdContenuJour.InnerHtml = "www.developpez.net";
    					//Ajout de la cellule à la ligne
    					trContenuJour.Controls.Add(tdContenuJour);
    					//Ajout de la ligne au deuxième tableau
    					MonTableau.Controls.Add(trContenuJour);
    				}
    			}

  16. #16
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    je te rappelle qq fondamentaux pour créer un tableau sous c# :

    • dans un tabelau tu ne peux ajouter que des lignes
    • dans une ligne tu ne peux ajouter que des cellules
    • Seule une cellule peut avoir un contenu ( control ou htmlinnertext)


    si tu utilises Web developper express pour creer ta page laisse toi guider , il ne t'indiquera que ce que tu peux utiliser.

    Bon code a toi, a+

    Arthis

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Ah merci pour ce rappel.
    C'est donc pour cela que ça me génère une erreur quand j'essaye de mettre quelque chose dans row.

    Ok pour ça mais pourquoi lorsque je teste d'insérer quelque chose dans une cellule rien ne s'affiche à l'écran ?

    Euh sinon non, je n'utilise pas Web developper express, mais Visual Studio Net 2002, je vais tester ce logiciel pour voir s'il peut me venir en aide.

  18. #18
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    et est ce que tu as rajouté ton tableau à ta page?

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Oui j'ai fais comme gwadakillah m'a dit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <table id="planning" runat="server">
    <tr>
         <td> Entete </td>
    </tr>
    <tr>
       <td>
         <table id="MonTableau" runat="server">
     
        </table>
       </td>
    </tr>
    </table>
    Quand je dis rien ne s'affiche, il y a comme même entete qui s'affiche mais pas les autres informations que je veux insérer dynamiquement

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Voici la logique que j'essaye de suivre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Pour (i=0;i<5;i++) {
        <tr>
        Pour (j=0;j<5;j++) {
           <td>
           Pour (n=0;n<5;n++) {
               <tr><td>Toto</td></tr>
          Fpour
          </td>
       Fpour
       </tr>
    Fpour
    Maintenant j'arrive à afficher quelque chose avec ce code là mais tout s'affiche en colonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    for (int ligne = 0;ligne<= 9;ligne++) 
    			{
    				HtmlTableRow Maligne = new HtmlTableRow();
    				HtmlTableCell MaCase = new HtmlTableCell();
    				MaCase.InnerHtml = "<tr>";
    				for (int j=0;j<7;j++) 
    				{
     
    					MaCase.Width = "10%";
    					MaCase.InnerHtml = "<tr><td bgcolor=\"#FFFF00\">toto</td></tr>";
    					MaCase.InnerHtml = MaCase.InnerHtml + "<tr><td>";
     
     
    					HtmlTableRow Maligne2 = new HtmlTableRow();
    					//On ajoutera 10 case dans ce tableau
    					for (int colonne =0;colonne<= 9;colonne++)
    					{
    						HtmlTableCell MaCase2 = new HtmlTableCell();
    						MaCase2.Width = "10%";
    						MaCase2.InnerHtml = "<tr><td bgcolor=\"#FF0000\">titi</td></tr>";
    						Maligne2.Cells.Add(MaCase2);
    					}
    					planning.Rows.Add(Maligne);
     
    					MaCase.InnerHtml = MaCase.InnerHtml + "</td></tr>";
    					MonTableau.Rows.Add(Maligne2);
    					Maligne.Cells.Add(MaCase);
     
    				}
    			}

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2008, 22h40
  2. Réponses: 5
    Dernier message: 26/08/2006, 10h23
  3. Réponses: 4
    Dernier message: 03/08/2006, 14h11
  4. [C#] Modifier le int d'une clé primaire dans un tableau VS database
    Par padodanle51 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/07/2006, 13h48
  5. Réponses: 1
    Dernier message: 01/05/2006, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo