Avatar billede elisabeth Nybegynder
03. juli 2001 - 15:03 Der er 10 kommentarer og
1 løsning

Sortering med både asc og desc

Jeg har et tabelfelt som jeg trækker ud. Jeg har lavet det til et link og kører sortering på det. Jeg vil gerne have det sådan at når jeg klikker på linket første gang, så bliver informationerne sorteret desc, når jeg så klikker igen så skal der sorteres asc.

Lidt kode; (virker ikke)

IF session(\"Sort\")<> \"\" THEN             
  sql = sql & \" ORDER BY \"  & session(\"Sort\") & \" desc \"
  session(\"Sort\") = \"\"
Else
  sql = sql & \" ORDER BY \"  & session(\"Sort\") & \" asc \"
END IF
Avatar billede nuno Nybegynder
03. juli 2001 - 15:08 #1
hvis session(\"Sort\") er tom - så bliver Else udført - og så er der ikke noget i ORDER BY, da det er værdien fra session(\"Sort\") der skal køres Order By på..... men den er jo tom :)

/nuno
Avatar billede orca Nybegynder
03. juli 2001 - 15:40 #2
Prøv at brug denne istedet:

If session(\"Sort\") <> \"\" then
  sql = sql & \" ORDER BY feltnavn desc\"
  session(\"Sort\") = \"desc\"
else
  sql = sql & \" ORDER BY feltnavn asc\"
end if

mvh mark
Avatar billede orca Nybegynder
03. juli 2001 - 15:44 #3
ups, jeg lavede lige en fejl -> opdateret version:

If session(\"Sort\")= \"\" then
  sql = sql & \" ORDER BY feltnavn desc\"
  session(\"Sort\") = \"desc\"
else
  sql = sql & \" ORDER BY feltnavn asc\"
end if
Avatar billede elisabeth Nybegynder
03. juli 2001 - 15:56 #4
Det virker ikke da jeg er nød til at køre det på session, da jeg har flere kolonner der skal sorteres på.

Min session bliver lavet sådan:
IF request.querystring(\"action\") <> \"\" THEN
  session(\"sort\") = request.querystring(\"action\")
END IF

Mit link ser sådan ud:
Response.write \"<A HREF=\"\"oversigt.asp?action=Dato\"\">Dato</A>\"
\'Dato er et feltnavn

Håber det hjalp
Avatar billede nuno Nybegynder
03. juli 2001 - 15:57 #5
elisabeth> det er lidt svært at gætte sig frem til hvad problemet er - kan du ikke komme med lidt mere kode? Evt. vise hvad sql er når din if-sætning er udført...

/nuno
Avatar billede elisabeth Nybegynder
03. juli 2001 - 15:59 #6
nuno>>Se ovenfor, Jeg håber det er nok. Jeg bliver desværre nødtil at stoppe for idag er tilbage i morgen.
Avatar billede nuno Nybegynder
03. juli 2001 - 16:00 #7
hmm ok det kom dér...

men du kan stadig under ingen omstændigheder lave den if-konstruktion du selv listede øverst...

for når du een gang har sorteret desc - så bliver session-variablen Sort jo sat til \"\" - og du vil mangle en ting at lave ORDER BY på i den sql der skal sorteres ASC - håber du forstår.....

/nuno
Avatar billede erikjacobsen Ekspert
03. juli 2001 - 16:01 #8
Hvad med også at proppe asc og desc ind i den sessionvariabel

  session(\"Sort\")=\"kolonnenavn desc\"
...
  sql = sql & \" ORDER BY \"  & session(\"Sort\")

og så test om den den er det ene eller det andet

  if instr(session(\"Sort\",\" desc\") then
    session(\"Sort\") = ....noget det trække kolonnenavnet up (split..) og sætte asc ind
  else
    ...det modsatte
  end if
Avatar billede nuno Nybegynder
03. juli 2001 - 16:03 #9
prøv at indsætte en

response.write sql
response.end

lige efter din if-sætning...

så vil du kunne se, hvordan sql-sætningen, der skal udføres - ser ud... og det giver mange gange svaret på problemet...

/nuno
Avatar billede orca Nybegynder
03. juli 2001 - 16:04 #10
hvad så med dette?

if request(\"action\") <> \"\" then

if session(\"firstclick\") = \"\" then
sql = sql & \" ORDER BY \" & request(\"action\") & \" asc\"
session(\"firstclick\") = \"nope\"
else
sql = SQL & \" ORDEr BY \" & request(\"action\") & \" desc\"
end if

end if

Mvh Mark
Avatar billede elisabeth Nybegynder
04. juli 2001 - 11:08 #11
Løsningen var:

If request(\"action\") <> \"\" Then
    If session(\"firstclick\") = \"\" Then
    sql = sql & \" ORDER BY \" & request(\"action\") & \" desc \"
    session(\"firstclick\") = \"no\"
    else
    sql = SQL & \" ORDER BY \" & request(\"action\") & \" asc\"
    session(\"firstclick\") = \"\"
    end if   
end if

Som næsten er Mark forslag men denne her kan man få til at skifte igen og igen.
Til Alle>> Tak for hjælpen
mvh Elisabeth
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester