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

VB.NET Discussion :

Forcer le tri d'un datagridview lié à un dataset


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut Forcer le tri d'un datagridview lié à un dataset
    Bonjour,
    Mon problème semble simple mais pas grand chose sur le net pour trouver une réponse alors je fais une nouvelle fois appel aux pros de Developpez...

    J'ai un datagridview lié à un dataset en conception (peut être que la précision a un sens), je vois donc 3 colonnes (elles sont visibles même en conception) dont la propriété DataPropertyName est bien renseignée.
    Par contre, bizarrement, la propriété IsDataBound me renvoit False...

    Je souhaiterais trier par défaut cette datagridview sur la deuxième colonne lors de son affichage.
    L'appel à .Sort(macolonne,monsensdetri) provoque une exception de type "DataGridView control must be bound to an IBindingList object to be sorted"

    J'ai l'impression donc qu'il me faudrait implémenter un IBindingList (je suis preneur d'exemples au passage) alors que selon moi, le binding devrait être implicite (la grille affiche bien les informations demandées et les colonnes se trient bien quand on clique sur le header des colonnes).

    Quelqu'un a une idée ou une explication ?

    Edit: je viens de vérifier que si je définit le datasource en execution, le problème ne survient plus. Mon problème est résolu mais avec un petit goût d'incompréhension...
    Je précise aussi que je tourne sous la V2 du framework avec #Develop qui n'est pas très pote avec les datagridview en conception...

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Bonjour,

    pourrais-tu indiquer la valeur attribuée à la propriété DataSource du datagridview ?

    Merci

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,

    C'est le nom du DataSet, le DataMember étant le nom d'une des DataTable du DataSet

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Tu dois donc avoir quelque chose comme:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    tonDataGridView.DataSource = typeof(tonDataSet);

    C'est pour ça que tes 3 colonnes sont visibles en conception, mais ton DataGridView n'est bindé à aucun objet. Ce qui explique que la propriété IsDataBound te renvoie false.

    En espérant que cela réponde à ta question.
    ++

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Merci pour ta réponse.
    Comme je l'ai dit dans le premier message, la propriété est renseignée en conception et non dans le code.
    Je vois donc dans ma grille de propriété une chaine de caractère sans avoir vu ce qui a été généré.
    Mon problème a été résolu en mettant dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDataGrid.DataSource = MonDataSet
    (sans typeof)

    J'ai donc l'impression qu'en conception, ce n'est pas le même code qui est généré.

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Mon problème a été résolu en mettant dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDataGrid.DataSource = MonDataSet
    (sans typeof)
    Oui j'ai bien compris. Je pense que le designer a généré le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDataGrid.DataSource = typeof(MonDataSet);
    Mais c'est parce que tu l'as renseigné ainsi en mode design.
    Si en mode design, tu attribue à la propriété DataSource de ton datagridview une instance du dataset, il générera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDataGrid.DataSource = MonDataSet;
    Tu peux le vérifier très facilement en regardant le code généré par le designer.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# 2.0] Glyphe de tri sur un DataGridView
    Par StormimOn dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/09/2007, 12h25
  2. Enlever le tri sur une DataGridView
    Par Contrec dans le forum C#
    Réponses: 13
    Dernier message: 09/07/2007, 09h04
  3. Problème d'activation du tri sur un datagridView
    Par 2020 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/07/2007, 14h51
  4. Enlever le tri d'un DataGridView
    Par Pikwik10 dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/04/2007, 15h29
  5. Réponses: 3
    Dernier message: 13/12/2006, 16h01

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