31. august 2003 - 15:53Der er
24 kommentarer og 1 løsning
Manuel sortering af > 1 kolonne ved udtræk fra database til web
Brugeren skal kunne sortere kolonner ASC/ DESC manuelt ved tryk på kolonneoverskrift. Inden manuel sortering er kolonnerne altid sorteret ASC.
Hvordan indsætter jeg variabelen sort ? Kan jeg "genbruge" dele af script til kolonnerne ?
Set list = Server.CreateObject ("ADODB.Recordset") list.Open "SELECT * FROM database WHERE Database_Status =1 AND Kriterie LIKE " & soegestreng & " ORDER BY En, To , Tre", Conn
Variabelen sort undersøges jævnf. nedenstående:
sort = Request.QueryString("sort") If Request.QueryString("Submit") = "" Then If sort = "" Then sort = "ASC" ElseIf sort = "ASC" Then sort = "DESC" Else sort = "ASC" End If End If
Set list = Server.CreateObject ("ADODB.Recordset") list.Open "SELECT * FROM database WHERE Database_Status =1 AND Kriterie LIKE " & soegestreng & " ORDER BY En, To , Tre" & Request.QueryString("sort"), Conn
Skal det være samme sort order for alle 3 kolonner på samme tid så prøv:
sort = Request.QueryString("sort") If Request.QueryString("Submit") = "" Then If sort = "" Then sort = "ASC" ElseIf sort = "ASC" Then sort = "DESC" Else sort = "ASC" End If End If if sort="" then sort = "ASC"
Set list = Server.CreateObject ("ADODB.Recordset") list.Open "SELECT * FROM database WHERE Database_Status =1 AND Kriterie LIKE " & soegestreng & " ORDER BY En " & sort & ", To " & sort & ", Tre " & sort, Conn
Jeg har valgt løsningen med sort1, sort2 og sort3. Ved sortering af kolonne 1 med sort1 og efterfølgende sortering af kolonne 2 med sort2 "reset´es" sortering i kolonne 1 til ASC. Jeg havde tænkt mig, at sortering af de enkelte kolonne kan ske uafhængigt. Har man f.eks valgt sort1=ASC ændres det ikke fordi man vælger sort3=DESC
Ja?? Jeg ved ikke helt hvordan du skifter sort order retning men typsik har men en tabel som man vil vise på forskellige måder og ved et link ændre på sort order. Da jeg har forstået det sådan da at du vil havde en sort til hver kolonne uafhængig af de andre så har jeg vist et esk på hvordan man udksirver de enklete link som skifter sort order. Første er sort1 som bruges til kolonnen Et. Den ændre ASC til DESC og beholder sort order for sort2 og sort3.
Min browser melder fejl ved denne linie: response.write "<a href='search_ttest01.asp?sort1=DESC&sort2=" & sort2 & "&sort3=" & sort3 "'>Sorter kolonne En DESC</A>"
if sort1 = "ASC" then 'ændre sort1 -> DESC link response.write "<a href='fil.asp?sot1=DESC'>Sorter kolonne En DESC</A>" else 'ændre sort1 -> ASC link response.write "<a href='fil.asp?sot1=ASC'>Sorter kolonne En ASC</A>" end if
OK, jeg har erstattet det forrige script med det sidste forenklede og browseren viser siden uden problemer. Ved aktivering af script sorteres. Jeg forsøger mig med tilføjelse af sort2 og 3
Scriptet ser sålede ud nu:
sort = Request.QueryString("sort") if sort1 = "ASC" then 'ændre sort1 -> DESC link response.write "<a href='search_ttest01.asp?sort1=DESC'>Sorter kolonne En DESC</A>" else 'ændre sort1 -> ASC link response.write "<a href='search_ttest01.asp?sort1=ASC'>Sorter kolonne En ASC</A>" end if
Det så kun links som er udskrevet... Samtidig med skal du også lave det kode om som finde ud af om det er ASC eller DESC om så der er 3 variable:
sort1 = Request.QueryString("sort1") If sort1 = "" Then sort1 = "ASC" ElseIf sort1 = "ASC" Then sort1 = "DESC" Else sort1 = "ASC" End If
sort2 = Request.QueryString("sort2") If sort2 = "" Then sort2 = "ASC" ElseIf sort2 = "ASC" Then sort2 = "DESC" Else sort2 = "ASC" End If
sort3 = Request.QueryString("sort3") If sort3 = "" Then sort3 = "ASC" ElseIf sort3 = "ASC" Then sort3 = "DESC" Else sort3 = "ASC" End If
Set list = Server.CreateObject ("ADODB.Recordset") list.Open "SELECT * FROM database WHERE Database_Status =1 AND Kriterie LIKE " & soegestreng & " ORDER BY En " & sort1 & ", To " & sort2 & ", Tre " & sort3, Conn
Jeg har et problem vedr. at bevare søgestreng. Pt "reset´es" den men det kræver vist et nyt spørgsmål. Hvis du svarer får du point. Ved du om kan øge point´s ?
Du kan give flere point ved at trykke på point tallet ud for dig spørgsmål eller i menuen "Afsæt Flere Point", men det kan man ikke når spørgsmålet er lukket.
Synes godt om
Ny brugerNybegynder
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.