webForumDet fria alternativet

Paging hm

5 svar · 430 visningar · startad av MHZ

MHZMedlem sedan apr. 200555 inlägg
#1

Jag har lagt in paging i ett forum och det fungerar som det ska när det finns poster skrivna. Men skapar jag en kategori och sen vill skriva i den får jag:

Feltyp:
ADODB.Recordset (0x800A0BCD)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post

Det som inte vill fungera är

rstPosts.AbsolutePage = intPage

Tar jag bort den raden fungerar allt som det ska men då är ju inte pagingen med såklart.

Kan nån se vad man ska göra för att få detta att fungera

<%
rstPosts.Open SQL, Connect, 1, 3
rstPosts.PageSize = 8
X=0
If Request.QueryString("page") = "" OR NOT IsNumeric(Request.QueryString("page")) Then
intPage = 1
Else
intPage = CInt(Request.QueryString("page"))
End If

rstPosts.AbsolutePage = intPage

DO UNTIL rstPosts.EOF OR X = rstPosts.PageSize
%>

<table border="1" width="99%" cellpadding="0" cellspacing="0" align="center">
		 
  <tr>
    <td class="rubrik4" align="center" width="35" style="border-right-width: 1px">&nbsp;<img border="0" src="image/no_new_posts_icon.gif"></td>
    <td class="rubrik3" style="border-right-width: 1px"><%If (cint("0" & request.cookies("niva")) > 2) Then%><a href="ask_redigera_post.asp?post_id=<%=rstPosts.Fields(0).Value %>"><img border="0" src="image/admin.gif"></a><%End If%>&nbsp;<a href = "ask_visa_poster.asp?post_id=<%= rstPosts.Fields(0).Value %>"><font size="2"><b><%= Server.HTMLEncode(rstPosts.Fields(1).Value) %></b></font></td>
	<td class="rubrik4" align="center" width="80" style="border-right-width: 1px"><a href="ask_visa_profil.asp?action=ok&id=<%=rstPosts.Fields(5).Value %>"><i><b><%= rstPosts.Fields(3).Value %></b></i></a></td>
	<td class="rubrik4" align="center" width="40" style="border-right-width: 1px"><%=cLng(rstPosts.Fields(9).Value)%></td>
	<td class="rubrik4" align="center" width="40" style="border-right-width: 1px"><%=cLng(rstPosts.Fields(13).Value)%></td>
	<td class="rubrik4" align="right" width="145"><font size="1" face="verdana"><%= formatDateTime(rstPosts.Fields(2).Value,1) %><br>Kl.<%= formatDateTime(rstPosts.Fields(2).Value,4) %></font></td>	
    <td class="rubrik4"width="1"><br>&nbsp;</td>
  </tr>
  
<table border="0" width="99%" cellpadding="0" cellspacing="0" align="center">  
  
<%
X=X+1
rstPosts.movenext
LOOP
If rstPosts.PageCount > 1 Then
For i = 1 To rstPosts.PageCount
If i <> intPage Then
Response.Write("<a href=""?page=" & i & "&category_id=" & cLng(Request.QueryString("category_id")) & """>" & i &"</a> ")
Else
Response.Write("[" & i & "] ")
End If
Next
End If

rstPosts.Close
Set rstPosts = Nothing
Connect.Close
Set Connect = Nothing
%>
MHZMedlem sedan apr. 200555 inlägg
#2

Det verkar som om pagingen kräver en post men det fungerar inte med att ge ett alternativ så här utan pagingen verkar villa ha en post där ändå.

If rstPosts.EOF Then 
%>

   <tr>
       <td>Inget inlägg än..</td>
   </tr>

<%
Else
DO UNTIL rstPosts.EOF OR X = rstPosts.PageSize
%>
@ndersMedlem sedan juni 200032 969 inlägg
#3

rstPosts.AbsolutePage = intPage måste ju också ligga i else-delen av din if-sats - det var ju den raden som genererade felet.

MHZMedlem sedan apr. 200555 inlägg
#4

Nu gick det bättre ja. Är det så att all paging kräver ett alternativ och det är tomt eller skiljer det på olika paging? Innan jag la till det så läste skriptet ut som det skulle även utan inlägg.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Det är inte just paging som kräver att det finns poster i recordsetet, men om recordset är tomma går det inte så bra att sätta egenskaper på dem (ex. pagesize eller absolutepage).

Så: innan du försöker sätta egenskaper eller köra någon av recordsetobjektets metoder måste du alltid kolla att inte recordsetet är tomt / eof.

MHZMedlem sedan apr. 200555 inlägg
#6

Ok. Tack för svaret :)

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)