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

Windows Forms Discussion :

[VB2005] DataGridView : LinkColumn


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut [VB2005] DataGridView : LinkColumn
    Bonjour à tous,

    Etant récemment passé de VS2003 à VS2005, je remplace avec joie tous mes DataGrid par des DataGridView.

    Après avoir corriger les centaines d'erreurs occasionnés par ce merveilleux composant (qui a dit ironique?), je voudrais m'attaquer au type des colonnes.

    Bon, je ne parle du type booleen que le dgv (on va abrévier pcq qu'est-ce que c'est long comme nom...) gère très bien tout seul. Mon problème se situe au niveau des linkcolumn.

    Voilà le soucis :

    J'effectue une requête sur une DB et je récupère le résultat dans un DataSet. J'affecte ensuite le-dit Dataset à la propriété DataSource du dgv.

    Jusque là, tout va très bien, j'ai mes données bien présentées et tout et tout.

    C'est juste que je voudrais aller plus loin. J'ai une colonne qui contient des adresses e-mails et je voudrais en faire un lien "mailto:" de manière à ouvrir directement le client mail lorqu'on clique dessus.

    J'ai déjà consulté la msdn et google à ce sujet mais je ne trouve que des méthodes pour ajouter une colonne. Alors j'ai essayé, ça m'ajoute une jolie colonne toute vide au début (ou à la fin pour ceux qui préfère) mais je n'ai rien trouvé pour changer le type d'une colonne ou remplacer une colonne existante par une copie d'un autre type.

    Quelqu'un jonglerait-il avec cela ?

    Merci d'avance.

    Griftou.

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut
    une fois créées, tu ne peux pas modifier le type des colonnes.

    donc crée tes colonnes avant d'alimenter avec le datasource et desactive la generation auto des colonnes sur ton dgv

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bon et bien merci pour la réponse.

    Me reste plus qu'à regarder ça alors.

    Griftou.

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bon bin finalement, ce n'est pas résolu du tout ^^

    J'ai bien désactivé l'auto génération des colonnes de mon dgv. J'ai ajouté manuellement mes colonnes dans le mode design.

    Et au run-time, quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.datasource = ds.tables(0)
    et bien les colonnes que j'ai crée reste désespérement vide et il me génère les colonnes automatiques à la suite.

    C'est pas comme ça qu'il faut faire?

    Griftou.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut
    Essaye un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Rows.AddRange(ds.Tables(0).Rows)

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Ca marche pas

    Il ne peut pas convertir un objet de type DataRowCollection en un objet de type DataGridViewRow.

    Damned!

    Griftou.

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut


    essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Rows.AddRange(ds.Tables(0).Rows.GetEnumerator())
    ca donne quoi?

    Sinon, il reste plus qu'à faire une belle boucle sur les lignes de ton dataset et de faire des

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Rows.Add(new DataGridViewRow(...)...)

  8. #8
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Non j'peux pas faire ce genre de boucle, ce serait de la folie. Si les critères de recherche ne sont pas assez spécifique, j'vais me retrouver avec un nombre faramineux et ça va freezer sec !

    Vais bien finir par trouver un truc pour bidouiller ça.

    J'vous dit quoi.

    Griftou.

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut
    t'as essayé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Rows.AddRange(ds.Tables(0).Rows.GetEnumerator())
    ?

  10. #10
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Oui oui, j'ai testé, ça ne marche pas ^^.

    Il ne sait pas convertir l'objet.

    Griftou.

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut
    Alors une derniere idée :

    tu te crée un objet datatable "dt"

    tu y crée tes colonnes persos.

    tu recupere les données de ton dataset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt.Rows = ds.Tables(0).Rows
    ce coup la le parse sera bon

    et après


Discussions similaires

  1. vb2005 datagridview et mise à jour intempestive
    Par JPelli dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/11/2008, 16h25
  2. [VB2005]datagridview : header rowindex ?
    Par Kropernic dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/06/2008, 09h31
  3. Réponses: 3
    Dernier message: 06/02/2008, 22h35
  4. [VB2005] DatagridView et colonnes crées manuellement.
    Par azerty53 dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/06/2007, 21h36
  5. [vb2005]Tester la valeur d'une cellule d'un datagridview
    Par stargates dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2006, 10h09

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