webForumDet fria alternativet

Enklaste vägen för en flytta upp och ned.

ASP

3 svar · 340 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

Bilden visar en del från ett enklare admingränssnitt.
Raderna sorteras efter PageOrder i tabellen.

Hur skulle ni gå tillväga för att skapa flytta upp och flytta ned metoderna?

Visa gärna med någon kodsnutt eller pseudokod :)

up_down.png
Medlem sedan juni 20019 519 inlägg
#2

har du något fält som har en "order"? annars blir det svårt ;) kan ju inte byta ID (eller bör inte göra det) ;)

Medlem sedan nov. 20051 317 inlägg
#3

Kanske så här:

ID = Den posten man klickat på

Alla PageOrder:n som är högre än ID:ns PageOrder ska bli plussade med 1. Samt den som byter plats med ID ska även den plussas med 1....

Eller tänker jag fel?

Medlem sedan feb. 200112 078 inlägg
#4

Att uppdatera alla poster under eller över den du ska flytta är inte så smart eller effektivt. Det smartaste är helt klart att bara byta ordinal-nummer på den du flyttar med den som ligger under eller över, åt det håll du ska flytta åt. Alltså, om vi ska flytta posten med ID 3 uppåt ett steg i denna tabell;

[b]ID - Ordinal[/b]
1 - 1
2 - 2 < ID 2 får ordinal +1
3 - 3 < ID 3 får ordinal -1
4 - 4
5 - 5

Resultat (osorterat);

[b]ID - Ordinal[/b]
1 - 1
2 - 3 
3 - 2 
4 - 4
5 - 5

Sorterar du sedan på "ordinal" blir det;

[b]ID - Ordinal[/b]
1 - 1
3 - 2
2 - 3
4 - 4
5 - 5
258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)