[VB] Listview sorteren van klein naar groot

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 06-06 20:49
Hoe sorteer ik een listview met bijvoorbeeld als inhoud 1, 3 en 21 op de juiste volgorde?

Als ik deze nu ga sorteren krijg ik deze volgorde: 1, 21, 3
en ik wil uiteraard 1, 3, 21

Hoe kan ik dit realiseren?

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 08-06 22:31

Gerco

Professional Newbie

Door de items zelf te sorteren en dan pas in de listview te zetten. Voor zover ik weet heeft een VB listview geen mogelijkheid om anders dan alfabetisch te sorteren (zit ook wat in, aangezien alle items strings zijn), misschien is het wel mogelijk door een message naar de listview te sturen, maar dat weet ik niet zeker.

Wat ik meestal doe is mn database laten sorteren en dan in die volgorde erin prakken (even ervan uitgegaan dat je data uit een database komt).

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 19-02 09:33
Gaat het erom om de lijst 1 keer te sorteren, of wil je dat de lijst gesorteerd wordt op de kolom waarop je klikt?

Het eerste is niet al te moeilijk, met het tweede haal je je een hoop ellende op de hals.

| Toen / Nu


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 06-06 20:49
SuperRembo schreef op 27 september 2002 @ 23:27:
Gaat het erom om de lijst 1 keer te sorteren, of wil je dat de lijst gesorteerd wordt op de kolom waarop je klikt?

Het eerste is niet al te moeilijk, met het tweede haal je je een hoop ellende op de hals.
de lijst moet eerst een keer gesorteerd worden en als er iets veranderd in de lijst (een nummer vervalt of er komt een nummer bij) moet hij opnieuw gesorteerd worden (ik heb autoColumnReorder al aanstaan, maar hij zet dsu 21 boven 3....)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 19-02 09:33
In dat geval kan je bijvoorbeeld een extra kolom toevoegen met breedte 0 (zodat je 'm niet ziet) waarop je kan sorteren. In die kolom zet je de getallen dan met nullen ervoor zodat ze bij alfabetisch sorteren in de goede volgorde komen (dus 021 en 003).

| Toen / Nu


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 06-06 20:49
dat had ik geprobeerd... maar die nullen aan het begin werden automatisch weggehaald, maar ik bedenk me nu dat ik er dan gewoon overal gewoon ook nog een letter voor kan zetten.... thnx... ik denk dat ik al een heel eind kom,

anders horen jullie het nog wel ;)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 19-02 09:33
.ListSubItems.Add , , Right$("00000" & i, 5)

| Toen / Nu


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 06-06 20:49
daarbij moet ik ook even vermelden dat ik daar hoogst waarschijnlijk met een Int() heb gewerkt :X ;)

Thnx iig

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 21:57

Crazy D

I think we should take a look.

Exact expert nodig?


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 19-02 09:33
Als je een listview m.b.v. API calls en een callback-sort gaat sorteren, dan betekent dat wel dat je een aantal andere VB funties ook via API calls moet gaan regelen. Bijvoorbeeld ItemClick en HitTest retourneren niet meer het juiste item.

| Toen / Nu


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 21:57

Crazy D

I think we should take a look.

Das iss een nadeel ja (al wil ja dat om 4 uur 's nachts weleens vergeten :P).
Een andere manier is zoals al gezegt een hidden kolom, of (ook een creatieve oplossing :P), gewoon de stringsort gebruiken die ingebouwd zit, en voordat je 'm laat sorteren, alle items doorlopen en zo formatteren dat ze via een string-sort goed gesorteerd worden, en ze daarna weer terug zetten... maar of dat nou echt de snelheid bevordert... dan is de hidden kolom waarschijnlijk toch het makkelijkste.

Exact expert nodig?

Pagina: 1