webForumDet fria alternativet

Visa antal poster när posterna är uppdelade på flera sidor.

ASP

5 svar · 213 visningar · startad av mm5

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

Jag har en sökfunktion där resultatet visas med 20 poster per gång. Jag har en knapp som visar nästa och föregående 20 poster. Nu vill jag lägga till så att man kan se hur många poster sökningen gav totalt och vilka 20 poster man är på.

Medlem sedan dec. 200012 464 inlägg
#2

Hur ser koden ut? Du kan ju posta den del som sköter om siduppdelningen.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 20015 inlägg
#3

<%
Dim antalrader
antalrader = 20
Dim index
index = 0
rs_antalrader= rs_antalrader+ antalrader
%>

---------------------------------------

<%If historia.EOF Then
Response.Write "<br><font class='svart'> Sökningen gav inga träffar"
Else

While ((antalrader <> 0) AND (NOT historia.EOF))
if index Mod 2 = 1 then
bg = "#ffffff"
else
bg = "#F5F5F5"
end if

%>
<table width="500" border="0" cellspacing="0" cellpadding="0" class="svart" height="18">
<tr bgcolor="<%=bg%>">
<td width="80"> <%= DoDateTime((historia.Fields.Item("datum").Value), 2, 1053) %><br>
</td>
<td width="420"><A HREF="historiadetalj.asp?<%= MM_keepNone & MM_joinChar(MM_keepNone) & "ID=" & historia.Fields.Item("ID").Value %>">  <%=(historia.Fields.Item("data").Value)%> (<%=(historia.Fields.Item("tabell").Value)%> ) i <%=(historia.Fields.Item("station").Value)%>: <%=(historia.Fields.Item("ny").Value)%></A></td>
</tr>
</table>
<%
index=index+1
antalrader=antalrader-1
historia.MoveNext()
Wend
%>

Medlem sedan dec. 200012 464 inlägg
#4

Det var inte riktigt det jag ville se, utan mer hur du hämtar data och hur du positionerar dig i recordset.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 20015 inlägg
#5

<%
set historia = Server.CreateObject("ADODB.Recordset")
historia.ActiveConnection = MM_stationer_STRING
valdstation = Request.querystring("station")
If Request.querystring("station") <> "" Then
historia.Source = "SELECT * FROM historia WHERE station = '" & Request.querystring("station") & "' ORDER BY datum DESC"
End If
If Request.Form("sok") <> "" Then
historia.Source = "SELECT * FROM historia WHERE gammal Like '%" & Request.Form("sok") & "%' OR ny Like '%" & Request.Form("sok") & "%'ORDER BY datum DESC"
End If
If Request.Form("sokdatum") <> "" Then
historia.Source = "SELECT * FROM historia WHERE datum Like '%" & Request.Form("sokdatum") & "%' ORDER BY datum DESC"
End If
If Request.querystring("station") = "" And Request.Form("sok") = "" And Request.Form("sokdatum") = ""Then
historia.Source = "SELECT * FROM historia ORDER BY datum DESC"
End If
historia.CursorType = 0
historia.CursorLocation = 2
historia.LockType = 3
historia.Open()
historia_numRows = 0
%>

Medlem sedan dec. 200012 464 inlägg
#6

Om du byter till

historia.CursorLocation = 3

så kan du använda


response.write "Antal träffar = " & historia.recordcount

för att visa totala antalet poster.

Jag förutsätter att du har någon variabel som innehåller vilken sida du skall visa.
Om den heter t.ex. pageNumber, så kan du använda följande kod för att visa vilka poster man ser

if 20*pageNumber > historia.recordcount then
   response.write "nu visas post " &  (pageNumber-1) * 20 & " till " & historia.recordcount
else
   response.write "nu visas post " &  (pageNumber-1) * 20 & " till " & pageNumber*20
end if

------------------
essentitia preter non sans multiplicandum

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)