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 :

DataGridViewCheckBoxColumn : Un coup ça marche, un coup ça marche


Sujet :

VB.NET

  1. #1
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut DataGridViewCheckBoxColumn : Un coup ça marche, un coup ça marche
    Hello,

    Je suis en train de devenir fou et ne sais plus où chercher la cause de ce comportement étrange...
    Dans un formulaire, j'ai un TabControl avec 2 TabPages qui contiennent chacun un DataGridView et chaque DataGridView contient une DataGridViewCheckBoxColumn. Dans le premier datagridview, je peux la cocher via la code. Dans le second, pas moyen... C'est pourtant le même code partout (ou alors il est temps que j'aille chez l'opthalmo...).

    Voici la définition du TabControl, de ces TabPages et des DataGridView :
    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
    63
    64
    65
    66
    67
    68
    69
    70
    '
            'tcPromoDetail
            '
            Me.tcPromoDetail.Controls.Add(Me.tpDemo)
            Me.tcPromoDetail.Controls.Add(Me.tpOwn)
            Me.tcPromoDetail.Dock = System.Windows.Forms.DockStyle.Fill
            Me.tcPromoDetail.Location = New System.Drawing.Point(0, 184)
            Me.tcPromoDetail.Name = "tcPromoDetail"
            Me.tcPromoDetail.SelectedIndex = 0
            Me.tcPromoDetail.Size = New System.Drawing.Size(1004, 434)
            Me.tcPromoDetail.TabIndex = 6
            '
            'tpDemo
            '
            Me.tpDemo.Controls.Add(Me.dgvPromoDetailDemo)
            Me.tpDemo.Controls.Add(Me.tlpDemo)
            Me.tpDemo.Location = New System.Drawing.Point(4, 22)
            Me.tpDemo.Name = "tpDemo"
            Me.tpDemo.Padding = New System.Windows.Forms.Padding(3)
            Me.tpDemo.Size = New System.Drawing.Size(996, 408)
            Me.tpDemo.TabIndex = 0
            Me.tpDemo.Text = "Demo"
            Me.tpDemo.UseVisualStyleBackColor = True
            '
            'tpOwn
            '
            Me.tpOwn.Controls.Add(Me.dgvPromoDetailOwn)
            Me.tpOwn.Controls.Add(Me.tcOwn)
            Me.tpOwn.Controls.Add(Me.tlpOwn)
            Me.tpOwn.Location = New System.Drawing.Point(4, 22)
            Me.tpOwn.Name = "tpOwn"
            Me.tpOwn.Padding = New System.Windows.Forms.Padding(3)
            Me.tpOwn.Size = New System.Drawing.Size(996, 408)
            Me.tpOwn.TabIndex = 1
            Me.tpOwn.Text = "Own"
            Me.tpOwn.UseVisualStyleBackColor = True
            '
            'dgvPromoDetailDemo
            '
            Me.dgvPromoDetailDemo.AllowUserToAddRows = False
            Me.dgvPromoDetailDemo.AllowUserToDeleteRows = False
            Me.dgvPromoDetailDemo.AllowUserToResizeRows = False
            DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer))
            Me.dgvPromoDetailDemo.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
            Me.dgvPromoDetailDemo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.dgvPromoDetailDemo.Dock = System.Windows.Forms.DockStyle.Fill
            Me.dgvPromoDetailDemo.Location = New System.Drawing.Point(3, 38)
            Me.dgvPromoDetailDemo.Name = "dgvPromoDetailDemo"
            Me.dgvPromoDetailDemo.ReadOnly = True
            Me.dgvPromoDetailDemo.RowHeadersVisible = False
            Me.dgvPromoDetailDemo.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
            Me.dgvPromoDetailDemo.Size = New System.Drawing.Size(990, 367)
            Me.dgvPromoDetailDemo.TabIndex = 0
            '
            'dgvPromoDetailOwn
            '
            Me.dgvPromoDetailOwn.AllowUserToAddRows = False
            Me.dgvPromoDetailOwn.AllowUserToDeleteRows = False
            Me.dgvPromoDetailOwn.AllowUserToResizeRows = False
            DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer))
            Me.dgvPromoDetailOwn.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
            Me.dgvPromoDetailOwn.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.dgvPromoDetailOwn.Dock = System.Windows.Forms.DockStyle.Fill
            Me.dgvPromoDetailOwn.Location = New System.Drawing.Point(3, 38)
            Me.dgvPromoDetailOwn.Name = "dgvPromoDetailOwn"
            Me.dgvPromoDetailOwn.ReadOnly = True
            Me.dgvPromoDetailOwn.RowHeadersVisible = False
            Me.dgvPromoDetailOwn.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
            Me.dgvPromoDetailOwn.Size = New System.Drawing.Size(990, 367)
            Me.dgvPromoDetailOwn.TabIndex = 1
    Mis à part les noms et les tabindex, je ne vois aucune différence entre les 2 TabPages ni entre les deux DataGridView.

    Voici comment les colonnes sont ajoutées aux DataGridView :
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
        Private Sub InitDgvDemo()
            dgvPromoDetailDemo.AutoGenerateColumns = False
            dgvPromoDetailDemo.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
     
            Dim index As Integer
     
            With dgvPromoDetailDemo.Columns
                index = .Add("dgvcId", "Id")
                .Item(index).DataPropertyName = "Id"
                .Item(index).Visible = False
     
                index = .Add("dgvcCodeDemo", "Code")
                .Item(index).DataPropertyName = "CodeDemo"
     
                index = .Add("dgvcDemoName", "Name")
                .Item(index).DataPropertyName = "DemoName"
     
                index = .Add("dgvcVbn", "VBN")
                .Item(index).DataPropertyName = "Vbn"
     
                index = .Add("dgvcPercentage", "Percentage")
                .Item(index).DataPropertyName = "Percentage"
     
                index = .Add("dgvcPercentType", "Type")
                .Item(index).DataPropertyName = "PercentType"
     
                index = .Add("dgvcDesc", "Description")
                .Item(index).DataPropertyName = "Description"
     
                index = .Add("dgvcNote", "Note")
                .Item(index).DataPropertyName = "Note"
     
                index = .Add("dgvcBuyingDept", "Buying Dept.")
                .Item(index).DataPropertyName = "BuyingDepartment"
     
                index = .Add("dgvcListType", "Type of list")
                .Item(index).DataPropertyName = "ListType"
     
                index = .Add("dgvcProductCount", "Product Count")
                .Item(index).DataPropertyName = "ProductCount"
     
                Dim col As New DataGridViewCheckBoxColumn()
                col.Name = "dgvcEncoded"
                col.HeaderText = "Encoded"
                index = .Add(col)
                .Item(index).DataPropertyName = "Encoded"
     
                Dim btnColumn As New DataGridViewDisableButtonColumn
                btnColumn.Name = "dgvcBrowse"
                btnColumn.HeaderText = ""
                btnColumn.Text = "Get List"
                btnColumn.UseColumnTextForButtonValue = True
                .Add(btnColumn)
            End With
        End Sub
     
        Private Sub InitDgvOwn()
            dgvPromoDetailOwn.AutoGenerateColumns = False
            dgvPromoDetailOwn.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
     
            Dim index As Integer
     
            With dgvPromoDetailOwn.Columns
                index = .Add("dgvcId", "Id")
                .Item(index).DataPropertyName = "Id"
                .Item(index).Visible = False
     
                index = .Add("dgvcDepartment", "Department")
                .Item(index).DataPropertyName = "Department"
     
                index = .Add("dgvcBrand", "Brand")
                .Item(index).DataPropertyName = "Brand"
     
                index = .Add("dgvcBrand", "Brand")
                .Item(index).DataPropertyName = "BrandName"
     
                index = .Add("dgvcPercentage", "Percentage")
                .Item(index).DataPropertyName = "Percentage"
     
                index = .Add("dgvcPercentType", "Type")
                .Item(index).DataPropertyName = "PercentType"
     
                index = .Add("dgvcComment", "Description")
                .Item(index).DataPropertyName = "Description"
     
                index = .Add("dgvcNote", "Note")
                .Item(index).DataPropertyName = "Note"
     
                index = .Add("dgvcSeasons", "Seasons")
                .Item(index).DataPropertyName = "SeasonsRange"
     
                index = .Add("dgvcBuyingDept", "Buying Dept.")
                .Item(index).DataPropertyName = "BuyingDepartment"
     
                index = .Add("dgvcListType", "Type of list")
                .Item(index).DataPropertyName = "ListType"
     
                index = .Add("dgvcProductCount", "Product Count")
                .Item(index).DataPropertyName = "ProductCount"
     
                Dim col As New DataGridViewCheckBoxColumn()
                col.Name = "dgvcEncoded"
                col.HeaderText = "Encoded"
                index = .Add(col)
                .Item(index).DataPropertyName = "Encoded"
     
                Dim btnColumn As New DataGridViewDisableButtonColumn
                btnColumn.Name = "dgvcBrowse"
                btnColumn.HeaderText = ""
                btnColumn.Text = "Get List"
                btnColumn.UseColumnTextForButtonValue = True
                .Add(btnColumn)
            End With
        End Sub
    Là encore aucune différence. Bien sûr, toutes les colonnes ne sont pas identiques (sinon autant faire une seule grille) mais la colonne qui pose problème (vers la fin dans les 2 sub) nommée "dgvcEncoded" est créée pareil pour les deux au caractère près.

    Et pour finir, voici ce qu'il se passe lorsqu'un utilisateur double-clique sur cette case (me demandez pas pourquoi il faut que ce soit un double-clique et pourquoi pas plutôt simplement autoriser l'édition du DGV pour voir cocher la case normalement, c'est comme ça que cela a été demandé) :
    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
        Private Sub dgvPromoDetailDemo_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPromoDetailDemo.CellDoubleClick
            If e.RowIndex < 0 OrElse
                Not e.ColumnIndex = dgvPromoDetailDemo.Columns("dgvcEncoded").Index OrElse
                CBool(dgvPromoDetailDemo.Rows(e.RowIndex).Cells("dgvcEncoded").Value) = True OrElse
                Not Promo.DTO.IsDemoEncoded OrElse
                dgvPromoDetailDemo.SelectedRows.Count > 1 Then
                Exit Sub
            End If
     
            dtd.FlagAsEncoded()
            dgvPromoDetailDemo.Rows(e.RowIndex).Cells("dgvcEncoded").Value = True
        End Sub
     
        Private Sub dgvPromoDetailOwn_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPromoDetailOwn.CellDoubleClick
            If e.RowIndex < 0 OrElse
                Not e.ColumnIndex = dgvPromoDetailOwn.Columns("dgvcEncoded").Index OrElse
                CBool(dgvPromoDetailOwn.Rows(e.RowIndex).Cells("dgvcEncoded").Value) = True OrElse
                Not Promo.DTO.IsOwnEncoded OrElse
                dgvPromoDetailOwn.SelectedRows.Count > 1 Then
                Exit Sub
            End If
     
            dto.FlagAsEncoded()
            dgvPromoDetailOwn.Rows(e.RowIndex).Cells("dgvcEncoded").Value = True
        End Sub
    Là encore, à part le nom du dgv, rien ne change non plus. Pourtant, en mode pas à pas, si je mets le curseur de la souris sur la propriété Value de la dernière ligne de la sub alors que le curseur de debug est sur le sur end sub, dans le premier cas, je vois que la valeur est bien passée à True mais dans le second, elle reste sur False...

    Je ne sais plus quoi vérifier d'autre à part tout ce que je viens de mettre ici. Quelqu'un aurait-il une idée ??

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Bonjour
    un petit test
    si après la ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvPromoDetailDemo.Rows(e.RowIndex).Cells("dgvcEncoded").Value = True
    ajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dgvPromoDetailOwn.Rows(e.RowIndex).Cells("dgvcEncoded").Value = True
    passe t'il à true ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Existe-t-il un lien avec entre tes "CheckBoxColumn" et "FlagAsEncoded" ? parcequ'une fois il est sur dto et l'autre sur dtd.

  4. #4
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Les méthodes FlagAsEncoded mettent un flag dans la DB. Et plutôt que de recharger les données, je mets le flag manuellement sur la grille. (je ne peux pas simplement me contenter de mettre le flag sur l'objet car j'utilise un wrapper anonyme).

    EDIT : J'ai oublié de préciser...

    dtd et dto sont deux objets de type similaires mais différents. Respectivement PromoDetailDemo et PromoDetailOwn. Tous deux héritent de PromoDetail.

    @Shayw : Je ne peux pas tester car le second DGV n'est pas forcément initialisé lors du double-clique de la case dans le premier.

  5. #5
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Me revoilà, j'avais d'autres chats à fouetter en priorité...

    @shayw : J'ai quand même voulu tester ta proposition en m'assurant que la grille soit chargée mais en fait, vu que pour entrer dans l'event où ça marche, je dois être sur l'autre onglet du tabcontrol, quand je reviens sur l'onglet ou se trouve la grille qui pose problème, bin forcément, elle est rafraichie et donc, la coche est de toute façon là ^^.

    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
        Private Sub tcPromoDetail_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tcPromoDetail.SelectedIndexChanged
            If tcPromoDetail.SelectedIndex = 0 Then
                DisplayDemos()
            ElseIf tcPromoDetail.SelectedIndex = 1 Then
                DisplayOwns()
            End If
        End Sub
     
        Private Sub DisplayDemos()
            InitPercentagesDemo()
            Me.dgvPromoDetailDemo.DataSource = Me.Promo.DTO.DetailsDemo.OrderBy(Function(x) x.Percentage).ThenBy(Function(x) x.PercentType.Description).ThenBy(Function(x) x.ListType).ThenBy(Function(x) x.CodeDemo.Code).ToList
        End Sub
     
        Private Sub DisplayOwns()
            InitPercentagesOwn()
            Dim data = (From dto As PROMO_DTO.PromoDetailOwn In Promo.DTO.DetailsOwn
                        Select Id = dto.Id, Department = dto.Department, Brand = dto.Brand, BrandName = dto.Brand.Description, Percentage = dto.Percentage, PercentType = dto.PercentType, Description = dto.Description, Note = dto.Note, SeasonsRange = dto.SeasonsRange, BuyingDepartment = dto.BuyingDepartment, ListType = dto.ListType, ProductCount = dto.ProductCount, Encoded = dto.Encoded)
            'Me.Promo.DTO.DetailsOwn = Me.Promo.DTO.DetailsOwn.OrderBy(Function(x) x.Department.Code).ThenBy(Function(x) x.SeasonsRange).ThenBy(Function(x) x.Brand.Code).ToList
            'Me.dgvPromoDetailOwn.DataSource = Me.Promo.DTO.DetailsOwn
            Me.dgvPromoDetailOwn.DataSource = data.OrderBy(Function(x) x.Department.Code).ThenBy(Function(x) x.SeasonsRange).ThenBy(Function(x) x.Brand.Code).ToList
        End Sub

  6. #6
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut Je viens de réaliser un détail qui peut porter à confusion
    Hello,

    Pour les courageux qui creuseraient la question, je viens de réaliser que vous pourriez être induit en erreur...

    Prenons par exemple le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub dgvPromoDetailOwn_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPromoDetailOwn.CellDoubleClick
            If e.RowIndex < 0 OrElse
                Not e.ColumnIndex = dgvPromoDetailOwn.Columns("dgvcEncoded").Index OrElse
                CBool(dgvPromoDetailOwn.Rows(e.RowIndex).Cells("dgvcEncoded").Value) = True OrElse
                Not Promo.DTO.IsOwnEncoded OrElse
                dgvPromoDetailOwn.SelectedRows.Count > 1 Then
                Exit Sub
            End If
     
            dto.FlagAsEncoded()
            dgvPromoDetailOwn.Rows(e.RowIndex).Cells("dgvcEncoded").Value = True
        End Sub
    L'objet dto dont j'appelle la méthode FlagAsEncoded n'a rien à voir avec l'objet DTO qui une propriété de l'objet Promo. Le premier est l'abréviation de DetailOwn et le second est l'accronyme de Data Transfer Object (qu'Hervé aura sûrement reconnu ^^).

    Manque de bol, ça donne le même trigramme dans ce cas-ci...

  7. #7
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut La cause se trouve p-e ici.
    En relisant un message précédent, je trouve enfin une différence dans la manière d'afficher les données dans les deux grilles.

    Cela se passe ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub DisplayDemos()
            InitPercentagesDemo()
            Me.dgvPromoDetailDemo.DataSource = Me.Promo.DTO.DetailsDemo.OrderBy(Function(x) x.Percentage).ThenBy(Function(x) x.PercentType.Description).ThenBy(Function(x) x.ListType).ThenBy(Function(x) x.CodeDemo.Code).ToList
        End Sub
     
        Private Sub DisplayOwns()
            InitPercentagesOwn()
            Dim data = (From dto As PROMO_DTO.PromoDetailOwn In Promo.DTO.DetailsOwn
                        Select Id = dto.Id, Department = dto.Department, Brand = dto.Brand, BrandName = dto.Brand.Description, Percentage = dto.Percentage, PercentType = dto.PercentType, Description = dto.Description, Note = dto.Note, SeasonsRange = dto.SeasonsRange, BuyingDepartment = dto.BuyingDepartment, ListType = dto.ListType, ProductCount = dto.ProductCount, Encoded = dto.Encoded)
            Me.dgvPromoDetailOwn.DataSource = data.OrderBy(Function(x) x.Department.Code).ThenBy(Function(x) x.SeasonsRange).ThenBy(Function(x) x.Brand.Code).ToList
        End Sub
    J'espère que le problème vient d'un truc qui se passe là-dedans et que ce n'est pas juste une coïncidence ^^

    EDIT : Bingo ! En replaçant la requête linq (donc un objet anonyme) par un objet "concret" (ie non anonyme), la coche de la case se fait bien. Reste à trouver le contournement de ce problème débile ^^. (tout ça pcq l'utilisateur voulu une colonne en plus didjù !)

  8. #8
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut Et voilà !
    En sachant où chercher, c'est tout de suite plus facile.

    C'était donc bien la requête linq le problème. Plus exactement, sa clause Select. Pour avoir un objet éditable, il faut utiliser Select New With {.prop1 = value1, .prop2 = value2, ... , .propN = valueN}.

    Si j'ai du temps, je chercherai le pourquoi. Ce sera l'occasion parfaite pour un petit billet de blog.

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

Discussions similaires

  1. 1&1 + Ext.Net marche pas + Coup de gueule
    Par lu2vik dans le forum 1&1
    Réponses: 0
    Dernier message: 04/05/2012, 00h22
  2. Un coup ça marche, un coup pas
    Par Kaory dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 11/06/2008, 17h55
  3. Ma page marche un coup puis plus rien.
    Par peter27x dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/04/2007, 15h26
  4. [hsqldb] un coup ca marche, un coup non!
    Par Babaôrom dans le forum JDBC
    Réponses: 4
    Dernier message: 24/11/2006, 15h13
  5. Série de If un coup ça marche un coup pas???
    Par samlepiratepaddy dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 11h01

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