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

C# Discussion :

problème mise en forme d'un texte dans un datagrid view


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut problème mise en forme d'un texte dans un datagrid view
    Bonjour à tous
    je suis en train de créer un éditeur css (en c#) pour un stage et quand je charge le fichier il me met le texte dans une seule collone alors que j'aimerai que ce affiché un mot par collone. Je suis ouvert à toute proposition et je vous remercie d'avance pour vos réponses.

    ps: Pour plus d'information je vous invite à voir l'impression d'écran de l'afficahe en pièce jointe.
    Images attachées Images attachées  

  2. #2
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Salut, ton problème doit sûrement provenir de ta façon de remplir ton dataGridView.

    Tu peux montrer le code de remplissage?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    voila le code en question le premier est pour créer les tables du data gridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     private DataTable CreerTable()
            {
                DataTable tablecss = new DataTable("css");
     
                tablecss.Columns.Add( new DataColumn("Nom élément document", typeof(string)));
                tablecss.Columns.Add(new DataColumn("Nom propriété", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur ", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur2", typeof(int)));
                return tablecss;
     
            }
    le deuxième pour le remplissage
    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
     
    private void ajouterlignetable(string lignelue, DataTable tablecss)
            {
                int i = 0;
                //découper la ligne en fonction du caractère de séparation
                string[] valeurcss = lignelue.Split(new char[] { ';' });
                //crée une nouvelle ligne de données
                DataRow lignecss= tablecss.NewRow();
                foreach (string valeur in valeurcss)
                {
                    switch (i++)
                    {
                        case 0:
                            lignecss["Nom élément document"] = valeur.Trim();
                            break;
                        case 1:
                            lignecss["Nom propriété"] = valeur.Trim();
     
                            break;
                        case 2:
                            lignecss["valeur"] = valeur.Trim();
                            break;
                        case 3:
                            lignecss["valeur2"] = valeur.Trim();
                            break;
     
     
     
                        default:
                            lignecss[string.Format("colonne{0}", i)] = valeur.Trim();
                            break;
     
                    }
                }
                tablecss.Rows.Add(lignecss);
            }
    Voila le code
    merci de ta réponse.

  4. #4
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Pour le remplissage pourquoi ne pas avoir tout simplement fait:

    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
     
     
    int i = 0;
    //découper la ligne en fonction du caractère de séparation
    string[] valeurcss = lignelue.Split(new char[] { ';' });
    //crée une nouvelle ligne de données
    DataRow lignecss= tablecss.NewRow();
     
    foreach (string valeur in valeurcss)
    {
         lignecss[i] = valeur.Trim();
         i++;
    }
     
    tablecss.Rows.Add(lignecss);
    Ça pourrait déjà simplifier un peu ton code.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    sur le coup je n'avais pas pensé faire comme ça je vais essayer ça tout de suite merci bien.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    merci ça simplifie totalement le code mais par contre l'affichage n'a pas changé.

  7. #7
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Il me semble qu'il y a une erreur dans le code au niveau du remplissage. Tu remplis des valeurs de type string, donc pour les trois premières colonnes çà passe, mais normalement pour la 4ème que tu as déclaré en int, çà ne devrait pas passer.

    Tu devrais avoir une exception à moins que tu n'aies modifier ton code.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    merci Il n'y a pas d'exeption et je n'ai pas modifié le code a part celui que tu m'a passé mais je vais regarder ce que je vais faire.

  9. #9
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    D'où appelles-tu ces deux méthodes?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    je les appelles du bouton ouvrir des fichiers (dans fichier ouvrir) pour pouvoir mettre en forme la table.
    J'ai essayé une modif qui dans le for each je fait un for(i=0;i<=2;i++) la dedans je met le valeur.trim et ça m'affichais que les balises css une collone sur 2. si ça te dit quelque chose?



    ps: en seconde pièce jointe l'affichage obtenue

  11. #11
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    J'ai pas compris, tu peux mettre le code?

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    voici le code de mon boutton ouvrir
    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
     
    private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
            {
                openFileDialog1.Filter = "fichier css|*.css";
                openFileDialog1.InitialDirectory = @"Bibliothèques\Documents\";
                openFileDialog1.FilterIndex = 0;
     
                string ligneLu = string.Empty;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        bindingSourcecss.DataSource = ouvrirfichier(openFileDialog1.FileName);
                        bindingNavigatorcss.BindingSource = bindingSourcecss;
                        dataGridView1.DataSource = bindingNavigatorcss.BindingSource;
                    }
                    catch (Exception err)
                    {
                        MessageBox.Show("Le document ne peut pas être ouvert" + err.Message + " ", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
     
     
     
                }
            }
    et celui de la fonction ouvrir
    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
     
     private DataTable ouvrirfichier(string NomDuFichier)
            {
     
                DataTable tablecss = null;
                Boolean premiereligne = true;
                string ligneLu = string.Empty;
                StreamReader fichier = new StreamReader(NomDuFichier);
                do
                {
                    ligneLu=fichier.ReadLine();
                    if (premiereligne && ligneLu != null)
                    {
     
                        //on crée la table 
                        tablecss = CreerTable();
                        premiereligne = false;
                    }
                    if (ligneLu != null)
                    {
                        ajouterlignetable(ligneLu, tablecss);
                    }
                } while (ligneLu != null);
                return tablecss;
            }
    voila voila en attente de ta réponse

  13. #13
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Bon j'ai testé le code de remplissage, et chez moi çà marche.

    Voilà mon test:

    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
    DataTable tablecss = new DataTable("css");
     
                tablecss.Columns.Add(new DataColumn("Nom élément document", typeof(string)));
                tablecss.Columns.Add(new DataColumn("Nom propriété", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur ", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur2", typeof(string)));
     
                string lignelue = "a;b;c;d";
     
                int i = 0;
                //découper la ligne en fonction du caractère de séparation
                string[] valeurcss = lignelue.Split(new char[] { ';' });
                //crée une nouvelle ligne de données
                DataRow lignecss = tablecss.NewRow();
     
                foreach (string valeur in valeurcss)
                {
                    lignecss[i] = valeur.Trim();
                    i++;
                }
     
                tablecss.Rows.Add(lignecss);
     
                bindingSource1.DataSource = tablecss;
                bindingNavigator1.BindingSource = bindingSource1;
                dataGridView1.DataSource = bindingNavigator1.BindingSource;
    Pour mon test j'ai enlevé la colonne de type int et ai remplacé par un string pour pas avoir à m’embêter avec le cast.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    merci je vais essayer tous de suite j'avais enlevé le int et transformé en string ça changeait pas grand chose mais le ligne lu"a;b;c;d" je l'avais pas fait et les 3 lignes bindingnavigator/source que tu as a la fin c'est celles que moi j'ai pour mon bouton ouvrir?

  15. #15
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    oui, après pour le lignelu, moi vu que je ne lis pas de fichier, j'ai mis en dur.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    je ne comprend pas bien comment tu obtiens le tablecss dans bindingsourcecss.datasource=tablecss ousi je me trompe tu as tout mis dans une seule méthode?

  17. #17
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    J'ai juste recopié le code de ta méthode creerTable().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                DataTable tablecss = new DataTable("css");
     
                tablecss.Columns.Add(new DataColumn("Nom élément document", typeof(string)));
                tablecss.Columns.Add(new DataColumn("Nom propriété", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur ", typeof(string)));
                tablecss.Columns.Add(new DataColumn("valeur2", typeof(string)));

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    et au final ça t'affiche quoi?

  19. #19
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Voilà ce que j'affiche.

    J'ai bien chaque lettre dans la bonne colonne.

    Nom : fen.png
Affichages : 60
Taille : 14,1 Ko

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 5
    Points
    5
    Par défaut
    quand je charge mon fichier ça affiche tout en collone essaie avec un fichier css quelquonque car ça marche avec des données brutes .
    En tout cas merci de t'être penché sur mon cas je vais continuer à chercher

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

Discussions similaires

  1. Mise en forme d'un texte dans une variable
    Par butheau dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/04/2013, 10h20
  2. mise en forme d'un texte dans une iframe
    Par kovrov dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/12/2010, 11h37
  3. Problème de mise en forme d'un texte.
    Par fred61 dans le forum Word
    Réponses: 2
    Dernier message: 20/11/2009, 20h29
  4. Probléme mise en forme du texte
    Par Rifton007 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 21/09/2008, 10h02
  5. problème mise en forme de balises ul li dans IE 6
    Par gaboo_bl dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 12/01/2007, 10h38

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