31. juli 2005 - 23:54Der er
12 kommentarer og 1 løsning
Paging uden at vise tomme felter
Jeg har fundet nedenstående script til at anvende paging. Det virker fortræffeligt, men nu vil jeg gerne have at den ikke viser titel, hvis ikke der findes noget information i feltet. Jeg har nemlig nogle tomme felter i databasen under titel, som den viser alligevel.
Jeg prøvede med:
if Not (rs.BOF Or rs.EOF) AND rs("titel") <> "" then
- men det virker ikke, da den slet ikke viser nogle titler så.
Mit script:
<html><head> <title>Paging af et recordset</title> </head><body>
<% intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT titel FROM film" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/vti_log/film.mdb")
rs.Open strSQL, strDSN, 1 if Not (rs.BOF Or rs.EOF) then rs.PageSize = 20 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>" Do While Not rs.EOF And intRecCount > 0 Response.Write rs("titel") & "<br>" intRecCount = intRecCount - 1 rs.MoveNext Loop End If rs.Close Set rs = Nothing
Response.Write "<p>Gå til side " For intNum = 1 To intPageCount Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> " Next
Response.Write "<p>" If Clng(intPage) > 1 Then Response.Write "<a href=paging.asp?page=" & intPage - 1 & "><<</a>" Else Response.Write "<<" End If
Response.Write " "
If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">>></a> " Else Response.Write ">>" End If %>
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409) Strengkonstanten er uafsluttet /paging.asp, line 14, column 53 strSQL = "SELECT titel FROM film WHERE titel <> "";"" ----------------------------------------------------^
Yes sir...Tusind takker. Hvis du lige smider et svar. En anden ting:
Ved du hvorledes jeg kan tilføje "case" i links til sidetallene? Grunden til at jeg spørger er fordi jeg på samme side har nogle forskellige case. Når jeg vil se fx side 2, får jeg en tom side, da den ikke kan finde ud af hvilken case der er "tale" om, hvis du forstår.
jeg ved ikke om jeg forstår dig helt - men går ud fra at det er noget med at du har opbygget din kode i en enkelt side hvor du så vil "smide" folk rundt efter hvad der står i querystringen... I så fald skal du have rette de steder i ovenstående kode hvor der er links til siderne således at du får tilføjet et & og så din "case".
varDropBox = Request.form("DropBox") Select Case varDropBox
Case "Billeder" bla bla bla bla (her sendes jeg til hvis jeg har valgt "billeder" fra form).
Case "Bogstaver" (her sendes jeg til hvis jeg har valgt "bogstaver" fra form). Det er hernede jeg har min paging. Når jeg så klikker på side 2, sendes jeg til toppen af siden og den kan ikke finde ud af at jeg kommer fra case "Bogstaver"
Hehee, det virker, det virker. Takker endnu engang. Mens vi har gang i tråden, kan du så hjælpe mig yderligere (kan godt oprette en ny tråd, men du kan få nogle points). Som jeg havde det før, var rs("titel") et link, men dette virker ikke nu. Den kommer med denne fejl:
Fejltype: ADODB.Recordset (0x800A0CC1) Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Inden jeg lavede paging på siden, åbnede jeg databasen således:
Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/film.mdb") Conn.Open DSN strSQL = "Select * From film Order by titel" Set rs = Conn.Execute(strSQL) Do While NOT rs.EOF Response.write "<a href='filmbeskrivelse.asp?forbogstav="& rs("forbogstav") &"&ID=" & rs("ID") & "'>" Response.write rs("titel") Response.write "</a>" end if rs.MoveNext Loop Conn.Close Set Conn = Nothing
Men efter jeg indførte paging scriptet, åbnes den jo på en anden måde som man kan se øverst på denne side. Har du en idé til hvorledes jeg kan få den til at opfange rs("forbogstav") og rs("ID")?
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.