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 :

[Vb.Net] Comment obtenir le nombre de ligne(s) d'un DataGrid ?


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut [Vb.Net] Comment obtenir le nombre de ligne(s) d'un DataGrid ?
    Bonjour,

    Après avoir effectué plusieurs recherches (google et forum) je n'ai pas réussi à trouver ce que je cherchais.

    J'aimerai à tout instant pouvoir connaitre le nombre de ligne(s) dans mon datagrid mais je ne trouve pas comme dans VB6 la propriété "rows" qui me donne ce que je cherche.

    Néanmoins j'ai trouvé ceci : http://faqvbnet.developpez.com/?page...tlines_binding

    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
     
    Public Class MonDataGrid
      Inherits DataGrid
     
      '...
      'accesseur publique qui obtient le nombre de lignes
      Public ReadOnly Property DataRowsCount() As Integer
        Get
            Return Me.currentDataRowsCount
        End Get
      End Property
     
      Private currentDataRowsCount As Integer
     
      'surcharge de MyBase.OnDataSourceChanged
      Protected Overloads Overrides Sub OnDataSourceChanged(ByVal e As
     System.EventArgs)
            If Not (Me.DataSource Is Nothing) Then
                Me.currentDataRowsCount = Me.BindingContext(Me.DataSource,
     Me.DataMember).Count
            Else : Me.currentDataRowsCount = 0
            End If
        MyBase.OnDataSourceChanged(e)
     End Sub
    End Class
    N'y a t'il pas plus simple ? En est t'on obligé de faire tout ça juste pour avoir le nombre de ligne(s) d'un datagrid ?

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    si tu rempli ton datagrid avec un dataset, il faut faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataset.tables("datatable").rows.count

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Je n'ai pas mon code source sur moi, j'avais fais une fonction qui me remplissait mon datagrid à partir d'une requête SQL donc je n'avais pas trop à la manipuler d'où mon manque de mémoire là dessus. Mais il me semble que je ne passais pas par le dataset, je crois que c'était via dataadapter mais à confirmer. En dehors du dataset on peut connaitre cette propriété comment ?

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    un dataadapter sert à remplir un dataset...

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par dinbougre
    Bonjour,
    Après avoir effectué plusieurs recherches (google et forum) je n'ai pas réussi à trouver ce que je cherchais.
    J'aimerai à tout instant pouvoir connaitre le nombre de ligne(s) dans mon datagrid mais je ne trouve pas comme dans VB6 la propriété "rows" qui me donne ce que je cherche.
    Néanmoins j'ai trouvé ceci : http://faqvbnet.developpez.com/?page...tlines_binding
    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
     
    Public Class MonDataGrid
      Inherits DataGrid
     
      '...
      'accesseur publique qui obtient le nombre de lignes
      Public ReadOnly Property DataRowsCount() As Integer
        Get
            Return Me.currentDataRowsCount
        End Get
      End Property
     
      Private currentDataRowsCount As Integer
     
      'surcharge de MyBase.OnDataSourceChanged
      Protected Overloads Overrides Sub OnDataSourceChanged(ByVal e As
     System.EventArgs)
            If Not (Me.DataSource Is Nothing) Then
                Me.currentDataRowsCount = Me.BindingContext(Me.DataSource,
     Me.DataMember).Count
            Else : Me.currentDataRowsCount = 0
            End If
        MyBase.OnDataSourceChanged(e)
     End Sub
    End Class
    N'y a t'il pas plus simple ? En est t'on obligé de faire tout ça juste pour avoir le nombre de ligne(s) d'un datagrid ?
    Arf comme beaucoup de vbcistes tu t'interresses direct au code sans comprendre ce que tu fais, donc pour info tu as oublié de lire l'introduction de la Q/R
    Comment obtenir le nombre de lignes du DataGrid par son BindingContext ?
    auteur : neguib

    La propriété DataGrid.BindingContext permet d'accéder à l'indexeur de l'objet BindingManagerBase sous-jascent. Et par la même, permet d'atteindre sa propriété BindingManagerBase.Count.
    Pour la démonstration, nous implémentons notre propre classe MonDataGrid dérivée de DataGrid.
    Donc "N'y a t'il pas plus simple ? "
    ben non mais il y a d'autres façons de proceder du moment que tu as compris la première phrase de l'introduction

    Puis "...dans mon datagrid mais je ne trouve pas comme dans VB6 la propriété "rows" qui me donne ce que je cherche."
    Ben oui puisque c'est pas prévu en VB.Net pour ce contrôle. Donc à ton avis à quoi sert la Q/R de la FAQ et notamment DataRowsCount que tu peux appeler rows si çà te chante

    En conclusion, "En est t'on obligé de faire tout ça juste pour avoir le nombre de ligne(s) d'un datagrid ?"
    Ben non tu peux très bien implémenter la fonction (qui récupère dynamiquement le bindingContext en cours pour le DataGrid utilisé et obtient le nombre d'enregistrements de la source de données courante) directement dans ton appli et faire appel à elle lorsque c'est necessaire.

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    C'est pas simplement les attributs VisibleRowCount et VisibleColumnCount que tu cherches ?

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

Discussions similaires

  1. Comment obtenir le nombre de ligne dans une requête ?
    Par totoAussi dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/09/2011, 17h28
  2. Réponses: 10
    Dernier message: 06/07/2006, 10h29
  3. Réponses: 2
    Dernier message: 29/01/2006, 22h51
  4. Comment obtenir le nombre de jours entre deux timedatepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2005, 11h59
  5. Comment obtenir le nombre de documents en attente d'impression ?
    Par Cambon dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 25/03/2005, 09h17

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