Ordinamento Listview o DataGridView
mardok30
mardok30 non è online. Ultima attività: 15/03/2009 11.40.01mardok30
il 22 agosto 2008 alle 21.36
333 messaggi dal 11 luglio 2003
Ciao a tutti,
devo creare una listview(o datagridview, o altro) che mi permetta di ordinare da codice i dati in base ad una determinata colonna. Sapreste suggerirmi la procedura da seguire?
Vb 2008
Ciao

No comment...
RE: Ordinamento Listview o DataGridView
vladimiro
vladimiro non è online. Ultima attività: 14/03/2009 10.29.57vladimiro
il 22 agosto 2008 alle 22.10
Contributi | 438 messaggi dal 04 agosto 2002

RE: Ordinamento Listview o DataGridView
Salvodif
Salvodif non è online. Ultima attività: 25/12/2008 11.57.09Salvodif
il 22 agosto 2008 alle 22.19
blogs.ugidotnet.org | 40 messaggi dal 07 gennaio 2008

Salvatore Di Fazio
http://blogs.ugidotnet.org/SalvoDiFazio
RE: Ordinamento Listview o DataGridView
vladimiro
vladimiro non è online. Ultima attività: 14/03/2009 10.29.57vladimiro
il 22 agosto 2008 alle 23.28
Contributi | 438 messaggi dal 04 agosto 2002
scusa, non mi ero accorto che postavi in winform.

Ecco l'esempio direttamente da MSDN:http://msdn.microsoft.com/en-us/library/0868ft3z.aspx

RE: Ordinamento Listview o DataGridView
mardok30
mardok30 non è online. Ultima attività: 15/03/2009 11.40.01mardok30
il 23 agosto 2008 alle 14.58
333 messaggi dal 11 luglio 2003
Avevo già dato uno sguardo ai link che gentilmente mi avete postato, non riuscendo ad ottenere l'ordinamento da me voluto. Provo con la DataGridView.
Nella Load della form ho popolato la DataGridView con 20 righe:

DataGridView1.Rows.Add(20)
        For i As Integer = 0 To 20
            DataGridView1.Item(0, i).Value = ""

            If CStr(i).Length = 1 Then
                DataGridView1.Item(0, i).Value = "0" & i
            Else
                DataGridView1.Item(0, i).Value = i
            End If
        Next

e nel click di un pulsante ho messo:
Dim newColumn As DataGridViewColumn
        If DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Selected) = 1 Then
            newColumn = DataGridView1.SelectedColumns(0)
        Else
            newColumn = Nothing
        End If

        Dim oldColumn As DataGridViewColumn = DataGridView1.SortedColumn
        Dim direction As System.ComponentModel.ListSortDirection

        ' If oldColumn is null, then the DataGridView is not currently sorted.
        If oldColumn IsNot Nothing Then

            ' Sort the same column again, reversing the SortOrder.
            If oldColumn Is newColumn AndAlso DataGridView1.SortOrder = _
                SortOrder.Ascending Then
                direction = System.ComponentModel.ListSortDirection.Descending
            Else

                ' Sort a new column and remove the old SortGlyph.
                direction = System.ComponentModel.ListSortDirection.Ascending
                oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
            End If
        Else
            direction = System.ComponentModel.ListSortDirection.Ascending
        End If


        ' If no column has been selected, display an error dialog  box.
        If newColumn Is Nothing Then
            MessageBox.Show("Select a single column and try again.", _
                "Error: Invalid Selection", MessageBoxButtons.OK, _
                MessageBoxIcon.Error)
        Else
          DataGridView1.Sort(newColumn, direction)

           If direction = System.ComponentModel.ListSortDirection.Ascending Then
                newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
            Else
                newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
            End If
        End If

Solo che mi da errore sulla riga in grassetto: "L'oggetto deve essere di tipo String."
Avete qualche idea?
Ciao e grazie

No comment...
RE: Ordinamento Listview o DataGridView
vladimiro
vladimiro non è online. Ultima attività: 14/03/2009 10.29.57vladimiro
il 23 agosto 2008 alle 15.24
Contributi | 438 messaggi dal 04 agosto 2002
prova a impostare il SortMode della colonna a Programmatic.

facci sapere ...

v

RE: Ordinamento Listview o DataGridView
mardok30
mardok30 non è online. Ultima attività: 15/03/2009 11.40.01mardok30
il 24 agosto 2008 alle 22.43
333 messaggi dal 11 luglio 2003
Ho già provato ad impostare anche su Programmatic, a voi funziona il codice che ho postato?
Ciao

No comment...
RE: Ordinamento Listview o DataGridView
mrdev
mrdev non è online. Ultima attività: 28/12/2008 17.16.52mrdev
il 25 agosto 2008 alle 17.04
Contributi | 497 messaggi dal 09 giugno 2006
Ciao.

Il problema è nell'origine dati, quando inserisci le righe. Nel codice che segue:

            If CStr(i).Length = 1 Then
                DataGridView1.Item(0, i).Value = "0" & i
            Else
                DataGridView1.Item(0, i).Value = i
            End If


la colonna si trova a contenere contemporaneamente valori di tipo String (Value = "0" & i) e valori di tipo Int32 (Value = i). Quando il DataGridView1 invoca l'interfaccia di ordinamento provoca un confronto non possibile tra String e Int32.

La soluzione, quindi, consiste nell'utilizzare lo stesso tipo di dati per tutti i record/le righe. Esempio (che sostituisce le righe sopra riportate):

DataGridView1.Item(0, i).Value = String.Format("{0:00}", i)


Ciao.

.:. Marcello Rutter .:.


2 pagine: [1] 2 Avanti >>

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9