ORDINARE COLONNA DATAGRID

di il
12 risposte

ORDINARE COLONNA DATAGRID

Salve a tutti..!!
Ho un problema nell'ordinare i dati in un datagrid ho aggiunto una colonna dove vado a scrivere dei numeri che vorrei ordinare cliccando sull'intestazione della colonna stessa.

L'ordinamento non avviene correttamente e' cioe':
 1,10,11,12,20,21,22,23……..

anzicche'

1,2,3,4,5,6,7,8,9,10,11………

so che dipende dal fatto che la colonna e' di tipo teso, ma non c'è la possibilita di aggiungere una colonna di tipo numero….
Come posso risolvere..??

Io creo la colonna facendo Aggiungi colonna al datagrid
Grazie in anticipo…..

12 Risposte

  • Re: ORDINARE COLONNA DATAGRID

    Ma i dati arrivano da un DB?

    Comunque gestisci l'evento SortCompare

  • Re: ORDINARE COLONNA DATAGRID

    Ora non ho sottomano la DataGridView, ma credo che quando aggiungi una colonna puoi anche dirgli di che tipo sia, controlla bene

    Edit:

            Dim grid As New DataGridView
            Dim column As New DataGridViewTextBoxColumn
            column.ValueType = GetType(Integer)
            column.Name = "columnName"
            column.HeaderText = "La mia colonna"
            grid.Columns.Add(column)
    
  • Re: ORDINARE COLONNA DATAGRID

    Grazie per le risposte….

    Io aggiungo la colonna dal triangolino in alto a destra del datagrid e non c'e' la possibilita' di specificare numerico si puo' solo decidere tra:

    Text

    combo

    link

    button

  • Re: ORDINARE COLONNA DATAGRID

    < Dim grid As New DataGridView
            Dim column As New DataGridViewTextBoxColumn
            column.ValueType = GetType(Integer)
            column.Name = "columnName"
            column.HeaderText = "La mia colonna"
            grid.Columns.Add(column)>

    se provo cosi non mi fa cliccare sull'intestazione della colonna per ordinare….

    Altre idee,,??

  • Re: ORDINARE COLONNA DATAGRID

    L'indicazione di SirJo è corretta, ma evidentemente il suo codice di esempio mostra una DataGridView creata a run-time (che necessita peraltro di qualcosa tipo Controls.Add(grid). Tu invece sembra che crei la DGV in fase di progettazione, quindi a quale colonna di quale griglia hai applicato l'esempio?

  • Re: ORDINARE COLONNA DATAGRID

    Si io ho inserito un componente datagridview  al quale poi ho associato i dati di un DB…..

    con il codice di sirjo ne ho creata un'altra nella quale ho inserito i valori 

    
            Dim column As New DataGridViewTextBoxColumn
            column.ValueType = GetType(Integer)
            column.Name = "SETTIMANE"
            column.HeaderText = "SETTIMANE"
            TB_COMMESSEDataGridView.Columns.Add(column)
    For Each row As DataGridViewRow In TB_COMMESSEDataGridView.Rows
    data_presa_in_carico = row.Cells("DATA_RICEVUTA").Value
    row.Cells("SETTIMANE").Value = Convert.ToDecimal(DateDiff("w", data_presa_in_carico, data_in_corso))
    next

    ma non mi da la possibilita' di mettere in ordine per numero 

  • Re: ORDINARE COLONNA DATAGRID

    Strano, perché per le colonne di tipo DataGridViewTextBoxColumn il valore di default per la proprietà SortMode è Automatic. Prova comunque a specificarlo: column.SortMode = DataGridViewColumnSortMode.Automatic .

    Quel Convert.ToDecimal perché? DateDiff restituisce comunque un intero.

  • Re: ORDINARE COLONNA DATAGRID

    Provato anche mettendo

    column.SortMode = DataGridViewColumnSortMode.Automatic

    niente non abilita il riordino

  • Re: ORDINARE COLONNA DATAGRID

    Beh allora fai un mini progetto solo con la parte problematica e condividilo in qualche modo, così che possiamo vederlo per intero.

  • Re: ORDINARE COLONNA DATAGRID

    E se provi così nemmeno te lo fa? a me funziona…

    DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Descending)

    o metti Ascending, specifica la colonna e te lo fa in automatico… 

  • Re: ORDINARE COLONNA DATAGRID

    Salve a tutti. Io ho lo stesso problema.

    nell'evento del datagrid cellclick ho messo una serie di funzioni che devo utilizzare.

    smanettando un pò ho capito che facendo click sull'intestazione delle colonne, l'indice che ritorna è -1

    con un if che riporto

     If Indice = -1 Then dbGrid2.Sort(dbGrid2.Columns(4), System.ComponentModel.ListSortDirection.Ascending) : Exit Sub

    ovviemente funziona, e vengo alla mia domanda:

    come posso far in modo da alternare ASCENDING CON DISCENDING ad ogni click.

    Mi spiego meglio se al primo click si riordina in ascending, con il secondo click vorrei si riodinasse in discending

    Grazie a tutti

  • Re: ORDINARE COLONNA DATAGRID

    Utilizza una variabile in cui memorizzi la direzione attuale e su quella ti basi.

    P.S. anche se l'argomento è simile non devi continuare un thread altrui con una tua richirsta 

Devi accedere o registrarti per scrivere nel forum
12 risposte