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 :

Ajouter une ligne dans un gridview


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut Ajouter une ligne dans un gridview
    Bonjour,

    J'ai créé un GridView "en dur", c'est à dire que je sais exactement ce que je vais afficher.

    J'ai la ligne que je veux ajouter à mon gridview ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i As Integer = 0 To dt.Rows.Count
        Dim grdRow As New GridViewRow(i, i, DataControlRowType.DataRow, DataControlRowState.Normal)
    Next
    Mais je ne trouve pas comment ajouter cette ligne à mon gridView

    Quelqu'un connait-il la propriété qui va bien?

    Quelquechose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.monGridView.AddRow(grdRow)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Après quelque recherche il s'avère IMPOSSIBLE de faire ce que je veux faire.

    En effet l'objet GridView est fait pour fonctionner avec du DataBinding et UNIQUEMENT avec du DataBinding

    Pourquoi? J'en ai pas la moindre idée!

    Donc ma question serait plutôt la suivante :

    Comment faire pour surcharger la methode databind?

    Si la dataSource est une dataTable avec les colonnes C1, C2, C3 et que je veux placer "à la main" ces données dans mon GridView, comment faire?

  3. #3
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim tempTable As New Data.DataTable
    tempTable.Columns.Add("Champ1", Type.GetType("System.String"))
    tempTable.Columns.Add("Champ2", Type.GetType("System.String"))
                For i As Integer = 1 To nbligne
                    Dim entreeVide As Data.DataRow
                    Dim d As Date
                    Dim intD As Integer
                    entreeVide = tempTable.NewRow()
                    entreeVide(0) = Valeur1
                    entreeVide(1) = Valeur2
                    tempTable.Rows.Add(entreeVide)
                Next
    Me.DGV.DataSource = tempTable

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Merci pour ta réponse mais ce n'est pas ce que je recherche.

    Avec cette méthode tu as du laisser autogenratecolumn à true. Dans mon cas je tiens à la laisser à false et à pouvoir spécifier explicitement mes valeurs dans mon GridView..

    Pourquoi tant d'acharnement?

    Pour deux raisons :
    1 - Parcequ'avec ta méthode il va fatalement placer les colonnes générées à droite de mes colonnes "template"

    2 - Les colonnes dans lesquelles je veux placer mes données ont des footer/header très précis qui ne seront pas récupérer par databind.

    En fait dans ton code il manque la ligne principale.. celle qui pose problème...

  5. #5
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    mais tu peux tout a fait faire un datasource et affecter tes colonnes manuellement !!

    Je pige pas la question peut-etre ???

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Ben comment?

    Tu as un exemple? Parceque ce n'est pas ce que fait ton exemple...

  7. #7
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     DGVBordereau.AutoGenerateColumns = False
     
            Dim dgvIDNumJour As New DataGridViewTextBoxColumn
            Dim iIDNumJour As Integer
            iIDNumJour = Me.DGVBordereau.Columns.Add(dgvIDNumJour)
            Me.DGVBordereau.Columns(iIDNumJour).DataPropertyName = "NumJour"
            Me.DGVBordereau.Columns(iIDNumJour).Name = "NumJour"
            Me.DGVBordereau.Columns(iIDNumJour).HeaderText = "NumJour"
            Me.DGVBordereau.Columns(iIDNumJour).Visible = False
     
            Dim dgvIDJour As New DataGridViewTextBoxColumn
            Dim iIDJour As Integer
            dgvIDJour.ReadOnly = True
            dgvIDJour.Width = 80
            iIDJour = Me.DGVBordereau.Columns.Add(dgvIDJour)
            Me.DGVBordereau.Columns(iIDJour).DataPropertyName = "Jour"
            Me.DGVBordereau.Columns(iIDJour).Name = "Jour"
            Me.DGVBordereau.Columns(iIDJour).HeaderText = "Jour"
            Me.DGVBordereau.Columns(iIDJour).Visible = True
     
            Dim dgvIDPresence As New DataGridViewTextBoxColumn
            Dim iIDPresence As Integer
            dgvIDPresence.ReadOnly = True
            dgvIDPresence.Width = 60
            dgvIDPresence.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            iIDPresence = Me.DGVBordereau.Columns.Add(dgvIDPresence)
            Me.DGVBordereau.Columns(iIDPresence).DataPropertyName = "Presence"
            Me.DGVBordereau.Columns(iIDPresence).Name = "Presence"
            Me.DGVBordereau.Columns(iIDPresence).HeaderText = "Presence"
            Me.DGVBordereau.Columns(iIDPresence).Visible = True
     
            Dim dgvTypeMotif As New DataGridViewComboBoxColumn()
            dgvTypeMotif.DataSource = Me._motifs.ListeMotif
            dgvTypeMotif.DataPropertyName = "motifCode"
            dgvTypeMotif.DisplayMember = "Desc"
            dgvTypeMotif.ValueMember = "Code"
            dgvTypeMotif.Name = "motifCode"
            dgvTypeMotif.Width = 220
            Dim iIDTypeMotif As Integer
            iIDTypeMotif = Me.DGVBordereau.Columns.Add(dgvTypeMotif)
            Me.DGVBordereau.Columns(iIDTypeMotif).DataPropertyName = "Absence"
            Me.DGVBordereau.Columns(iIDTypeMotif).Name = "Absence"
            Me.DGVBordereau.Columns(iIDTypeMotif).HeaderText = "Absence"
     
            Dim dgvIDNbHeure As New DataGridViewTextBoxColumn
            dgvIDNbHeure.Width = 60
            dgvIDNbHeure.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            Dim iIDNbHeure As Integer
            iIDNbHeure = Me.DGVBordereau.Columns.Add(dgvIDNbHeure)
            Me.DGVBordereau.Columns(iIDNbHeure).DataPropertyName = "NbHeure"
            Me.DGVBordereau.Columns(iIDNbHeure).Name = "NbHeure"
            Me.DGVBordereau.Columns(iIDNbHeure).HeaderText = "Nb Heure"
            Me.DGVBordereau.Columns(iIDNbHeure).Visible = True
     
            Dim dgvIDJustif As New DataGridViewCheckBoxColumn
            dgvIDJustif.Width = 60
            Dim iIDJustif As Integer
            iIDJustif = Me.DGVBordereau.Columns.Add(dgvIDJustif)
            Me.DGVBordereau.Columns(iIDJustif).DataPropertyName = "Justif"
            Me.DGVBordereau.Columns(iIDJustif).Name = "Justif"
            Me.DGVBordereau.Columns(iIDJustif).HeaderText = "Justif"
            Me.DGVBordereau.Columns(iIDJustif).Visible = True

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Merci pour ta réponse mais là tu n'as que la définition de ton gridView.

    Comment le remplis-tu?
    Comment définis-tu le nombre de lignes?

    PS: ton code m'aide quand même ... je sens qu'on est pas loin...

  9. #9
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Me.DGVBordereau.DataSource = datatable !!

    c'est tout !

  10. #10
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Je rajoute juste pour ta comprehention:
    que DataPropertyName doit etre egal au mon de ton champ dans ta datatable !!!

    Voila voila !!

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut
    Ben en fait la encore c'est un GridView et non un DataGridView... et ça, ça change tout!


    Je comprend mieux pourquoi on se comprend pas

  12. #12
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Vi....J'avais pas bien vu/lu !


    Je connais pas du tout les gridView ? mais si c'est de ASP.NET il y a un forum juste pour ça...

    Voila
    Bonne soirée !

Discussions similaires

  1. Comment ajouter une ligne dans une gridview
    Par zmamovzki dans le forum ASP.NET
    Réponses: 6
    Dernier message: 01/08/2013, 15h36
  2. Réponses: 5
    Dernier message: 29/03/2011, 16h05
  3. Ajout une ligne dans un GridView en clic TAB
    Par ragu23 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 17/03/2011, 14h35
  4. Ajouter une ligne dans un gridview
    Par The eye dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/01/2008, 01h15
  5. Ajouter une ligne dans une liste via un POPUP
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/01/2005, 17h20

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