Avatar billede jimpp Nybegynder
13. juli 2004 - 15:37 Der er 4 kommentarer og
1 løsning

Paging laver mærkelig visning.

Koden:
-----------------------------------------------------------
intPage = Request("page")
            If isNumeric(intPage) = False Or intPage < 1 Then
              intPage = 1
            End If
       
        Set RS_topics = Server.CreateObject("ADODB.RecordSet")
        RS_topics.open "Select * From [forum_topic] WHERE forum = " & Request.QueryString("id") & " ORDER BY sidst_aktiv DESC" , Conn_sites, 1
   
        If Not (RS_topics.BOF Or RS_topics.EOF) Then
            RS_topics.PageSize = 10
            RS_topics.AbsolutePage = intPage
              intRecCount = RS_topics.PageSize
              intPageCount = RS_topics.PageCount
    %>
        <div style="background-color: #CDE4FC; padding:2px;" class="greymenubox">
    <%
        Response.Write "<b>Side " & intPage & " af " & intPageCount & "</b>"
    %>
        </div>
    <%
       
        Do While Not RS_topics.EOF And intRecCount > 0
   
        Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
   
    %>
    <table border="0" cellpadding="3" cellspacing="0" width="100%">
    <tr class="tyktopcelle" onmouseout="this.style.backgroundColor='#ffffff'; window.status=' ';" onmouseover="this.style.backgroundColor='#DEF2FE';">
    <td align="left" width="20%"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_topics("dato")%></a></td>
    <td align="left"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_topics("titel")%></a></td>
    <td align="left" width="15%"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_posts("post")%> svar</a></td>
    </tr>
    </table>
    <%
        RS_topics.movenext
        loop
        End if

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
%>

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

Der opstår ikke nogle direkte fejl, men den opfører sig noget sjøst, den viser ikke 10 records pr. side. Men derimod er det som om den fjerne ti af gangen som man bevæger sig igennem page=1, page=2 osv... håber en eller anden kan hjælpe.
Avatar billede ellebaek Nybegynder
13. juli 2004 - 15:45 #1
du mangler at tælle intRecCount ned...

Sådan her vil jeg mene det virker...

intPage = Request("page")
            If isNumeric(intPage) = False Or intPage < 1 Then
              intPage = 1
            End If
       
        Set RS_topics = Server.CreateObject("ADODB.RecordSet")
        RS_topics.open "Select * From [forum_topic] WHERE forum = " & Request.QueryString("id") & " ORDER BY sidst_aktiv DESC" , Conn_sites, 1
   
        If Not (RS_topics.BOF Or RS_topics.EOF) Then
            RS_topics.PageSize = 10
            RS_topics.AbsolutePage = intPage
              intRecCount = RS_topics.PageSize
              intPageCount = RS_topics.PageCount
    %>
        <div style="background-color: #CDE4FC; padding:2px;" class="greymenubox">
    <%
        Response.Write "<b>Side " & intPage & " af " & intPageCount & "</b>"
    %>
        </div>
    <%
       
        Do While Not RS_topics.EOF And intRecCount > 0
   
        Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
   
    %>
    <table border="0" cellpadding="3" cellspacing="0" width="100%">
    <tr class="tyktopcelle" onmouseout="this.style.backgroundColor='#ffffff'; window.status=' ';" onmouseover="this.style.backgroundColor='#DEF2FE';">
    <td align="left" width="20%"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_topics("dato")%></a></td>
    <td align="left"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_topics("titel")%></a></td>
    <td align="left" width="15%"><a href="forum_topic.asp?forum=<%=request.QueryString("id")%>&id=<%=RS_topics("id")%>"><%=RS_posts("post")%> svar</a></td>
    </tr>
    </table>
    <%
        RS_topics.movenext
intRecCount = intRecCount -1
        loop
        End if

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=forum_traade.asp?id=" & request.QueryString("id") & "&page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
%>
Avatar billede ellebaek Nybegynder
13. juli 2004 - 15:46 #2
intRecCount tælles ned efter: RS_topics.movenext..

Så ved siden hvor langt du er nået, så tæller den ned fra 10, og derved opfyldes 2. kriterie i din do while løkke... Do While Not RS_topics.EOF And intRecCount > 0

og løkken stoppes derfor..!
Avatar billede ellebaek Nybegynder
13. juli 2004 - 16:25 #3
virkede det..?
Avatar billede jimpp Nybegynder
13. juli 2004 - 18:23 #4
Jamen det gjorde det jo :)
Avatar billede ellebaek Nybegynder
13. juli 2004 - 18:35 #5
okay.. Så smider jeg et svar :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester