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 :

[VB 2008] Ordre des colonnes DataGridView avec une source de données LinkToSql


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut [VB 2008] Ordre des colonnes DataGridView avec une source de données LinkToSql
    Bonjour,

    Je découvre les possibilités de requêtes offertes par Link To SQL.
    J’ai essayé le petit code suivant sur une base Sage Ligne 100 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            Dim Db As New SageDataContext
            Db.DeferredLoadingEnabled = False
            Dim Elements = From Customers In Db.F_COMPTET _
                          Select Number = Customers.CT_Num, Name = Customers.CT_Intitule, MaxCredit = Customers.CT_Encours _
                          Where (Name.Contains(TextBox1.Text))
            DataGridView1.DataSource = Elements
         End Sub
    Sage étant ma classe LinkToSql contenant entre autres la base « F_COMPTET ».

    La propriété AutoGenerateColumns est à « True ».

    Le résultat est correct dans l’objet Elements, mais les en-têtes de colonnes sont affichées par ordre alphabétique "MaxCredit, Name, Number" plutôt que dans l’ordre de sélection "Number, Name, MaxCredit".

    Quelqu’un aurait-il une idée pour corriger ce problème, sans créer les colonnes dans le designer ou par code ?

    Merci,
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Ca ressemble fort à un tri alphanumerique automatique dans elements.
    Je pense que la meilleure solution, et si tu connais le nom des colonnes, c'est de faire la modification manuellement dans ton dgv apres appel.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Merci Danyel,

    J'ai trouvé la propriété Index dans la collection Columns du Datagridview, mais elle est "ReadOnly" .

    Connaîtrais-tu la propriété adéquate?

  4. #4
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Merci Danyel,

    La propriété DisplayIndex fait mon bonheur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Dim Db As New SageDataContext
            Db.DeferredLoadingEnabled = False
            Dim Elements = From Customers In Db.F_COMPTET _
                          Select Number = Customers.CT_Num, Name = Customers.CT_Intitule, MaxCredit = Customers.CT_Encours _
                          Where (Name.Contains(TextBox1.Text))
            DataGridView1.DataSource = Elements
            With DataGridView1.Columns
                .Item("Number").DisplayIndex = 0
                .Item("Name").DisplayIndex = 1
                .Item("MaxCredit").DisplayIndex = 2
            End With
    Si je n'utilise pas la commande Select et que je retourne toutes les colonnes, elles apparaissent dans l'ordre établi par la base, mais pas par ordre alphabétique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            Dim Db As New SageDataContext
            Db.DeferredLoadingEnabled = False
            Dim Elements = From Customers In Db.F_COMPTET _
                          Where (Customers.CT_Intitule.Contains(TextBox1.Text))
            DataGridView1.DataSource = Elements
        End Sub
    Il y a une subtilité qui doit m'échapper.

  6. #6
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par Bob Langlade Voir le message
    Il y a une subtilité qui doit m'échapper.
    Je pense que le fait de demander sans critere retourne sans modifier quoi que ce soit, au contraire du select qui effectue une recherche et doit automatiquement trier.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Peut-être une correction à apporter dans une future mise à jour du framework ?

  8. #8
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Je pense qu'un expert sql doit avoir une reponse, voire la solution.
    (ce qui n'est pas mon cas )

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/03/2010, 21h22
  2. Réponses: 0
    Dernier message: 26/12/2008, 12h28
  3. Réponses: 3
    Dernier message: 11/03/2008, 15h10
  4. Réponses: 7
    Dernier message: 14/12/2007, 09h02
  5. Réponses: 2
    Dernier message: 23/03/2007, 14h31

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