+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Ordinare Listview per colonna di date

  1. #1
    strategaD non è in linea Scolaretto
    Post
    325
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buongiorno,
    ho una listview con 3 colonne e vorrei che la seconda fosse quella da cui prendere riferimento per un sorting, il mio problema non è però ordinare in base alla seconda colonna ma secondo il tipo di contenuto date ("ddMMyyyyHHmmss")

    Ecco il codice che uso per oridinare ma non funziona:
    Dim arrayIndex As Integer = -1
    'esecuzione
     ListView1.Sorting = Nothing
                Dim order() As Integer = {1, 2}
                arrayIndex += 1
                ListView1.ListViewItemSorter = New sorter With {.columnIndex = 1, .sortOrder = DirectCast(order(arrayIndex Mod 2), SortOrder)}
                ListView1.Sort()
                ListView1.ListViewItemSorter = Nothing
    
    'classe
    Public Class sorter
            Implements IComparer
    
            Public columnIndex As Integer
            Public sortOrder As SortOrder = SortOrder.Ascending
    
            Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
                Dim xDate As Date
                Date.TryParseExact(DirectCast(x, ListViewItem).SubItems(Me.columnIndex).Text, "ddMMyyyyHHmmss", Nothing, Globalization.DateTimeStyles.None, xDate)
                Dim yDate As Date
                Date.TryParseExact(DirectCast(y, ListViewItem).SubItems(Me.columnIndex).Text, "ddMMyyyyHHmmss", Nothing, Globalization.DateTimeStyles.None, yDate)
    
                If sortOrder = Windows.Forms.SortOrder.Ascending Then
                    Return xDate.CompareTo(yDate)
                ElseIf sortOrder = Windows.Forms.SortOrder.Descending Then
                    Return yDate.CompareTo(xDate)
                End If
    
            End Function
    
        End Class
    
    Non funziona sono in disordine cosa posso fare? Dove sbaglio? O devo usare un altro metodo?

    Grazie

  2. #2
    strategaD non è in linea Scolaretto
    Post
    325
    Like Inviati  
    0
    Like Ricevuti  
    0
    Forse non l'errore è qua: ddMMyyyyHHmmss? Non esiste come formato?

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,480
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Leggi questo

    https://social.msdn.microsoft.com/Fo...=csharpgeneral

    (da una banale ricerca).
    ℹ️ Leggi di più su AntonioG ...

  4. #4
    patel45 non è in linea Scolaretto
    Post
    473
    Like Inviati  
    0
    Like Ricevuti  
    0
    è comunque abbastanza complicata la soluzione suggerita, non sarebbe più semplice usare una DGV ?

  5. #5
    strategaD non è in linea Scolaretto
    Post
    325
    Like Inviati  
    0
    Like Ricevuti  
    0
    Come funziona un DGV?

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,480
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Cerca la documentazione sull'oggetto DataGridView
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    strategaD non è in linea Scolaretto
    Post
    325
    Like Inviati  
    0
    Like Ricevuti  
    0
    Non avevo compreso la sigla scusate...

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,480
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    L'avevamo compreso ...
    ℹ️ Leggi di più su AntonioG ...

  9. #9
    patel45 non è in linea Scolaretto
    Post
    473
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da patel45 Visualizza il messaggio
    è comunque abbastanza complicata la soluzione suggerita, non sarebbe più semplice usare una DGV ?
    Scusatemi, ma la mia era una domanda rivolta ad Antonio, non sono troppo sicuro che sia un suggerimento valido in generale.

  10. #10
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,480
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Vedi patel ... in genere non mi discosto troppo, se non necessario, dall'ambito della domanda. Lui vuole usare una listview e io gli do il suggerimento su come si fa con la listview.

    Probabilmente con una griglia è più comodo ma l'OP può non avere tempo per imparare nuovi concetti, nuovi strumenti o semplicemente non avere voglia o tempo di cambiare tutto il suo progetto.

    I suggerimenti alternativi sono tuttavia benvenuti.
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. ordinare una colonna secondo l'ordine di un'altra colonna
    Da francy2016 nel forum LibreOffice, OpenOffice e altro
    Risposte: 1
    Ultimo Post: 18-05-2016, 13:51
  2. Ordinare dati univoci da colonna
    Da pippobpmaster nel forum Microsoft Excel
    Risposte: 5
    Ultimo Post: 30-03-2015, 14:31
  3. [VB2012] Come ordinare la DataGridView1 da colonna
    Da Dasial nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 15-05-2013, 09:27
  4. Ordinare colonna in datagridview
    Da Marco2012 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 26-01-2010, 17:34
  5. [Excel-Vba]Ordinare una colonna data
    Da blackjack71 nel forum Microsoft Excel
    Risposte: 2
    Ultimo Post: 04-09-2009, 21:24