none
trier une colonne d'un datagridview RRS feed

Réponses

  • Donc là on ajoute une ligne dont l'unique colonne va être un tableau de deux entiers. Je me demande si l'on ne veut pas plus tôt qq chose comme :

      DataGridView1.Columns.Add("A", "A")
      DataGridView1.Columns.Add("B", "B")
      For i = 1 To 10
       Dim v1 As String = "Label " & i
       Dim v2 As Integer = i
       DataGridView1.Rows.Add(v1, v2)
      Next
    

     Ou tout simplement dans ton code, utilise tmpRowStr(0) et tmpRowStr(1) comme arguements dans le Rows.Add plutôt que simplement le tableau lui-même.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse fred75 mercredi 16 mars 2011 14:55
    mardi 15 mars 2011 19:28
    Modérateur

Toutes les réponses

  • Bonjour,

    Cela provient du type de données.

    Il faut utiliser des entiers et non des chaînes de caractères.

     

    lundi 14 mars 2011 15:45
  • Bonjour Foleide,

    oui mais quand je remplis mon datagridview avec des integer, le datagridview affiche Sys.int[32] dans la première colonne et rien dans la deuxième.

     


    fred
    lundi 14 mars 2011 17:55
  • Bonjour,

    La colonne serait un tableau et non pas un entier ? Faire peut-être la démo la plus courte montrant le problème. Par exemple :

    Public Class Form1
      Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Source As New DataTable
        Source.Columns.Add("Label", GetType(String))
        Source.Columns.Add("Count", GetType(Integer))
        Source.Rows.Add("A", 5)
        Source.Rows.Add("B", 10)
        Source.Rows.Add("C", 3)
        DataGridView1.DataSource = Source
      End Sub
    End Class
    
    Le tri sur la colonne Count fonctionne bien...

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mardi 15 mars 2011 09:43
    Modérateur
  • Merci Patrice

    Mais je ne passe pas par un DataTable (peut-être à tort)

    Voici mon code:

     Dim tmptab(51) As Int16
     Dim tmpRowStr(2) As Int16
    For i = 1 To 50 
      tmpRowStr(0) = i
      tmpRowStr(1) = tmptab(i)
       DataGridViewPremierNombre.Rows.Add(tmpRowStr) 
     Next
    


    fred
    mardi 15 mars 2011 13:38
  • Donc là on ajoute une ligne dont l'unique colonne va être un tableau de deux entiers. Je me demande si l'on ne veut pas plus tôt qq chose comme :

      DataGridView1.Columns.Add("A", "A")
      DataGridView1.Columns.Add("B", "B")
      For i = 1 To 10
       Dim v1 As String = "Label " & i
       Dim v2 As Integer = i
       DataGridView1.Rows.Add(v1, v2)
      Next
    

     Ou tout simplement dans ton code, utilise tmpRowStr(0) et tmpRowStr(1) comme arguements dans le Rows.Add plutôt que simplement le tableau lui-même.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse fred75 mercredi 16 mars 2011 14:55
    mardi 15 mars 2011 19:28
    Modérateur
  • Merci Patrice,

    Super cela marche nickel

    Je ne savais pas que l'on pouvait écrire

     DataGridView1.Rows.Add(v1, v2)

    C'est pratique les forums :O)


    fred
    mercredi 16 mars 2011 14:54