Avatar billede nogetfx Nybegynder
21. september 2001 - 14:37 Der er 6 kommentarer og
1 løsning

Paging et Recordset

Jeg har paget et recordset og når der er flere poster så udskriver den så mange tal som der er sider. Jeg vil gerne have den til at være en pil med funktion frem til næste, og så på side to skal man selvfølge lig også kunne komme tilbage...
I får lige hel koden, så i kabn se sammenhængen..

Lars

<!-- #include file = include/placering.asp -->
                                                                                       
                <%   
                    \' Først finder vi ud af hvad vores paging side er på nu
                        Page = Trim(Request(\"page\"))
                        If Page = \"\" Then Page = 1

                        strGrp = Request.QueryString(\"grp\")
                                   
                      \' Vores SQL-forespørgsel vi ønsker page
                        Sql = \"SELECT * FROM kort Where grp = \'\" & strGrp & \"\'\"

                        Set rs = Server.CreateObject(\"ADODB.Recordset\")
                        rs.CursorType = adOpenStatic

                        rs.PageSize = 8
                          rs.Open(Sql), Conn, 1, 3

                      \' Her laver jeg et lille trick der gør at hvis ens forespørgsel er tom, så får man ikke en fejl
                        If Not rs.EOF Then
                              rs.AbsolutePage = cINT(Page)
                              rowCount = 0
                            End If
                %>

                    <table cellpadding=\"0\" cellspacing=\"5\" border=\"0\" height=\"100%\">
                        <tr>
                            <td colspan=\"4\" height=\"10\" valign=\"top\">
                                <% If rs.PageCount <> 1 Then
                                    For i = 1 to rs.PageCount
                                        Response.Write \"<a href=\" & Chr(34) & \"default.asp?id=11&grp=larkana&page=\" & i & Chr(34) & \">\" & i & \"</a> \"
                                    Next
                                    <br><br></td>
                        </tr>
                <%
                    \' her laver vi en løkke der henter vores records ud
                        While Not rs.EOF and rowCount < rs.PageSize
   
                            If counter=0 then
                                Response.Write \"<tr valign=\'top\' align=\'left\'>\"
                            End If
   
                        counter=counter+1
                                                 
                %>
                    <td align=\"center\" valign=\"middle\" width=\"120\" height=\"120\">
                        <a href=\"java script:popup(\'popup.asp?id=<%=rs(\"id\")%>&grp=<%=rs(\"grp\")%>\')\" class=\"kort\" ><img border=\'0\' src=\"pic/larkana/small/<%=rs(\"img\")%>\"><br><%=rs(\"head\")%></a></td>
                                       

                <%
                        rowCount = rowCount + 1
                            rs.Movenext

                        If counter = 4 then
                            counter=0
                            Response.Write \"</tr>\"
                        End If

                        Wend

                                               
                        If rowCount <> 8 Then
                            Do Until rowCount = 8
                            Response.write \"<td width=\'120\' height=\'120\' align=\'center\' valign=\'middle\'><img src=\'pic/kort_none.gif\'><br>&nbsp;</td>\"
                            rowCount = rowCount + 1
                                               
                            Loop
                            Response.Write \"</tr>\"
                        End IF
       
                %>
Avatar billede nogetfx Nybegynder
21. september 2001 - 14:48 #1
Jeg bliver nød til at gå nu... Men hvis nogen kender løsningen så skriv endelig...
Avatar billede eagleeye Praktikant
21. september 2001 - 15:05 #2
Dette indsætteer  << >>  pile med link til forige/næste side. Du skal lige rette <a href=paging.asp?.....>¨så den passe med dit filnavn + parametre.

If Clng(Page) > 1 Then
    Response.Write \"<a href=paging.asp?page=\" & Page - 1 & \">&lt;&lt;</a>\"
Else
    Response.Write \"&lt;&lt;\"
End If

Response.Write \"&nbsp;\"

If Clng(Page) < Clng(rs.PageCount) Then
    Response.Write \"<a href=paging.asp?page=\" & Page + 1 & \">&gt;&gt;</a> \"
Else
    Response.Write \"&gt;&gt;\"
End If
Avatar billede horsmark Nybegynder
22. september 2001 - 16:52 #3
hvis i vil se den fede paging med intet andet end \"SELECT * FROM tblMintabel\" så sig lige til :-)

side [bla] ud af [blabla]
... ... ...
... ... ...
... ... ...
... ... ...
[gå til start][forrige 10]1 2 3 4 5 6 7 8 9 10[næste 10][gå til slut]

Det fede i den er at den er dynamisk og selv indhenter kollonnenavn og hvor mange kollonner der er og smider felter/kollonnenavne flot op i <td>´s
Avatar billede webbe Nybegynder
24. september 2001 - 08:37 #4
horsmark:

Vil da godt se den kode! ;0)
Avatar billede horsmark Nybegynder
24. september 2001 - 09:43 #5
<html><head>
<TITLE>DataBase Viewer</TITLE>
</head>
<body bgcolor=\"#FFFFFF\">
<!--#INCLUDE VIRTUAL=\"ADOVBS.INC\" -->
<%
connectme=\"DSN=minDSN;Uid=minUSER;Pwd=mitPASSWORD;\"
sqltemp=\"select * from tblMinTabel\"

mypage=request(\"whichpage\")
If  mypage=\"\" then
  mypage=1
end if
mypagesize=request(\"pagesize\")
If  mypagesize=\"\" then
  mypagesize=30
end if
mySQL=request(\"SQLquery\")
IF  mySQL=\"\" THEN
  mySQL=SQLtemp
END IF

set rstemp=Server.CreateObject(\"ADODB.Recordset\")
rstemp.cursorlocation=aduseclient
rstemp.cachesize=5
tempSQL=lcase(mySQL)
  badquery=false
  IF instr(tempSQL,\"delete\")>0 THEN
      badquery=true
  END IF
  IF instr(tempSQL,\"insert\")>0 THEN
      badquery=true
  END IF
  IF instr(tempSQL,\"update\")>0 THEN
      badquery=true
  END IF
  If badquery=true THEN
      response.write \"Not a SELECT Statement<br>\"
      response.end
  END IF

rstemp.open mySQL,connectme
rstemp.movefirst
rstemp.pagesize=mypagesize
maxpages=cint(rstemp.pagecount)
maxrecs=cint(rstemp.pagesize)
rstemp.absolutepage=mypage
howmanyrecs=0
howmanyfields=rstemp.fields.count -1%>
<table cellpadding=\'0\' cellspacing=\'0\' border=\'1\' bordercolor=\'#CFCFCF\'>
<tr><td bgcolor=\'#CFCFCF\' colspan=<%=howmanyfields+1%>>&nbsp;Side <%=mypage%> af <%=maxpages%></td></tr>
<tr><th colspan=<%=howmanyfields+1%>>&nbsp;<%=UCASE(mysql)%></th></tr>
<tr>
<%
\'Put Headings On The Table of Field Names
FOR i=0 to howmanyfields
  response.write \"<td bgcolor=\'#CFCFCF\'>&nbsp;<b>\" & rstemp(i).name & \"</b></td>\"
NEXT
response.write \"</tr>\"

\' Now loop through the data
DO  UNTIL rstemp.eof OR howmanyrecs>=maxrecs
  response.write \"<tr>\"
  FOR i = 0 to howmanyfields
      fieldvalue=rstemp(i)
      If isnull(fieldvalue) THEN
        fieldvalue=\"n/a\"
      END IF
      If trim(fieldvalue)=\"\" THEN
        fieldvalue=\"&nbsp;\"
      END IF
      response.write \"<td valign=\'top\'>&nbsp;\"
      response.write fieldvalue
      response.write \"</td>\"
  next
  response.write \"</tr>\"
  rstemp.movenext
  howmanyrecs=howmanyrecs+1
LOOP
response.write \"</table><p>\"

\' close, destroy
rstemp.close
set rstemp=nothing

\' Now make the page _ of _ hyperlinks
Call PageNavBar

sub PageNavBar()
      pad=\"\"
      scriptname=request.servervariables(\"script_name\")
      response.write \"<table cellpadding=\'0\' cellspacing=\'0\'><tr>\"
      response.write \"<td>&nbsp;\"
      if (mypage mod 20) = 0 then
      counterstart = mypage - 19
      else
      counterstart = mypage - (mypage mod 20) + 1
      end if
      counterend = counterstart + 19
      if counterend > maxpages then counterend = maxpages
      if counterstart <> 1 then
      ref=\"<a href=\'\" & scriptname
      ref=ref & \"?whichpage=\" & 1
      ref=ref & \"&pagesize=\" & mypagesize
      ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL)
      ref=ref & \"\'>Start</a>&nbsp;:&nbsp;\"
      Response.Write ref


      ref=\"<a href=\'\" & scriptname
      ref=ref & \"?whichpage=\" & (counterstart - 1)
      ref=ref & \"&pagesize=\" & mypagesize
      ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL)
      ref=ref & \"\'>Forrige</a>&nbsp;\"
      Response.Write ref
      end if
      Response.Write \"[\"
      for counter=counterstart to counterend
      If counter>=20 then
      pad=\"\"
      end if
      if cstr(counter) <> mypage then
      ref=\"<a href=\'\" & scriptname
      ref=ref & \"?whichpage=\" & counter
      ref=ref & \"&pagesize=\" & mypagesize
      ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL)
      ref=ref & \"\'>\" & pad & counter & \"</a>\"
      else
      ref=\"<b>\" & pad & counter & \"</b>\"
      end if
      response.write ref
      if counter <> counterend then response.write \" \"
      next
      Response.Write \"]\"
      if counterend <> maxpages then
      ref=\"&nbsp;<a href=\'\" & scriptname
      ref=ref & \"?whichpage=\" & (counterend + 1)
      ref=ref & \"&pagesize=\" & mypagesize
      ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL)
      ref=ref & \"\'>Næste</a>\"
      Response.Write ref


      ref=\"&nbsp;:&nbsp;<a href=\'\" & scriptname
      ref=ref & \"?whichpage=\" & maxpages
      ref=ref & \"&pagesize=\" & mypagesize
      ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL)
      ref=ref & \"\'>Slut</a>\"
      Response.Write ref
      end if
      response.write \"<br></font>\"
      response.write \"</td>\"
      response.write \"</table>\"
end sub
%>
</body>
</html>

Webbe>> værsgo... jeg har ladet det \"unødvendige\" kode være men det kan du jo selv fjerne evt :-)
Avatar billede webbe Nybegynder
24. september 2001 - 09:45 #6
Tark - kigger på det når jeg får brug for det! ;0)
Avatar billede nogetfx Nybegynder
25. september 2001 - 09:27 #7
Kanon...
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