webForumDet fria alternativet

Paging, hur funkar det?

ASP

3 svar · 316 visningar · startad av boilwater

Medlem sedan juni 200476 inlägg
Frågan#1

Hej!

Jag har kollat runt på olika sidor som tar upp paging och så, men ovasett vad jag testar så blir det fel på något sett.
Därför hoppas jag någon kan svara på hur jag skall lägga in sidnavigering i denna koden:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb") & ";pwd=;"

strSQL = "SELECT * FROM nyhet order by ID desc"
set rs = connect.execute(strSQL)
%>
<%
Y = 0
do until rs.eof OR Y = 5
if bgcolor = "#F5F5F5" then bgcolor = "#FFFFFF" else bgcolor = "#F5F5F5"
%>

            <tr bgcolor="<%= bgcolor %>">
              <td height="15" class="text"><img src="/img/arrow_B_ver2.gif" alt="<%=rs("inledning")%>" width="9" height="9" border="0"> <a href="las.asp?ID=<%=rs("ID")%>"><%=RS("rubrik")%></a></td>
              <td height="15" align="right" class="text"><%=rs("datum")%></td>
            </tr> <%
Y = Y + 1
rs.movenext
loop
rs.Close

%>

På förhand tack för hjälpen!

Medlem sedan aug. 20003 575 inlägg
#2

Okej, lite grundläggande tips.

Du måste ju i länken som skall gå till nästa sida se till att få med information om vilket nummer i ordningen sidan har.

Och med hjälp av denna information styra hur sql satsen ser ut för att få ut dom 5st som skall finnas på sidan som kommer efteråt.

Medlem sedan juni 200476 inlägg
#3

Hehe förlåt, men det där fattade jag nada av tyvärr..?

Medlem sedan jan. 2003438 inlägg
#4

Här kommer ett exempel som skall fungera, tänk bara att ändra på det markerade till vad sidan heter.

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb") & ";pwd=;"

Set RecSet = Server.CreateObject("ADODB.RecordSet")

' styr hur många tabellrader som skall synas på sidan.
Const perSida = 5

Dim bgcolor
  if bgcolor = "#F5F5F5" then 
     bgcolor = "#FFFFFF" 
  else 
	 bgcolor = "#F5F5F5"
  End if
	
Dim page
    page = Trim(Request.QueryString("page"))
  If page = "" Then
	page = 1
  End If

RecSet.CursorLocation = 3
RecSet.CacheSize = perSida
		
strSQL = "SELECT * FROM nyhet order by ID desc"
RecSet.Open strSQL, Connect, 3, 1 ' cursortyp 3 är adOpenStatic

If RecSet.EOF Then%>
  <tr></tr><td></td><p>Inga nyheter inlagda.</p></td></tr>
<%
Else

RecSet.MoveFirst 
RecSet.PageSize = perSida
	
RecSet.AbsolutePage = page 
TotalPages = RecSet.PageCount 
Count = 0
	
Do While Not RecSet.EOF And Count < RecSet.PageSize 
Count = Count + 1
%>
<tr bgcolor="<%= bgcolor %>">
              <td height="15" class="text"><img src="/img/arrow_B_ver2.gif" alt="<%=RecSet("inledning")%>" width="9" height="9" border="0"> <a href="las.asp?ID=<%=RecSet("ID")%>"><%=RecSet("rubrik")%></a></td>
              <td height="15" align="right" class="text"><%=RecSet("datum")%></td>
            </tr>
<% 
RecSet.MOVENEXT
LOOP

Response.Write "<tr><td>"

If TotalPages <> 1 Then
  If (Int(page)) <> 1 Then %>
    <a href="[B]test.asp[/B]?page=<%=(Int(page)-1)%>"><b>« Bakåt</b></a>
  <%End If%>
  <%
  For Pages = 1 To TotalPages 
  %> 
  <%If (Int(Pages)) = (Int(page)) Then%><b>[<%=Pages%>]</b> 
  <%Else%><a href="[B]test.asp[/B]?page=<%=Pages%>"><b><%=Pages%></b></a> 
  <%End If%>
  <%Next%> 
<%End If%> 
<% If (Int(page)) <> (Int(TotalPages)) AND Count > 0 Then %>
  <a href="[B]test.asp[/B]?page=<%=(Int(page)+1)%>"><b>Framåt »</b></a>          
<% End If

Response.Write "</td></tr>"

RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing

End if %>
256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)