ListView ed Ordinamento colonne

venerdì 22 ottobre 2004 - 15.53

elbande Profilo | Newbie

è possibile cliccando sul nome di una colonna di un listView in modalità dettaglio riordinare in base alla colonna in questione?

Andy Profilo | Senior Member

Ciao Elbande, è possibilissimo:

Inserisci questa classe nella tua classe del Form:

'Non valida per ordinare colonne di tipo DataTime, necessita modifica riga return
Class ListViewItemComparer
Implements IComparer

Private col As Integer
Public Sub New()
col = 0
End Sub
Public Sub New(ByVal column As Integer)
col = column
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
Implements IComparer.Compare
Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
End Function
End Class



Dopodichè nell' evento ColumnClick della tua lista:

Private Sub lv_TUALISTA_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lv_DDTResults.ColumnClick

'Per ordinare colonne con campi numericio date vedi libro pag. 626
lv_DDTResults.ListViewItemSorter = New ListViewItemComparer(e.Column)
lv_DDTResults.Sort()

End Sub

Nelle proprietà setti true la voce "AllowColumnReorder".

Ciao

elbande Profilo | Newbie

gosh! non ho capito un'acca....

elbande Profilo | Newbie

:) ho risolto , grazie!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5