Avatar billede plato Juniormester
20. januar 2007 - 12:28 Der er 8 kommentarer og
1 løsning

Problem med paging

Hejsa NG

Jeg har et lille problem med følgende kode, som bliver kaldet via en sub:

Sub PrintTabel(Sql, TType)
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("Provider")
Set Rs = Conn.Execute(sql)

<HTML KODE>


Do While NOT rs.EOF And intRecCount > 0
  rs.PageSize = 30
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount

<Her vil koden ikke vises mit loop af tabellen. F.eks rs("titel")>

intRecCount = intRecCount - 1
        rs.MoveNext
        Loop
Response.Write("Du er nu på side" & Request.Querystring("page") & "<br>")
For intNum = 1 To intPageCount

  Response.Write "<a href='forum.asp?mode=view&id="&Request.Querystring("id")&"&page=" & intNum & "'>" & intNum & "</a> "
Next

rs.close
set rs = nothing
End Sub

Strengen til dette er:
film.asp?mode=list_karakter&karakter=M&Type=Description&page=2

Der kommer ingen fejl, den udskriver "Du er nu på side 2". Men mine LOOP data kommer ikke frem. (jvf. <HTML KODE bla. bla.>)

Nogen der kan hjælpe mig?
Avatar billede lordnelson Seniormester
20. januar 2007 - 12:59 #1
Det første jeg falder over er at
rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount

står i din løkke den skal stå foran løkken
Set Rs = Conn.Execute(sql)
rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
Do While NOT rs.EOF And intRecCount > 0
LN
Avatar billede plato Juniormester
20. januar 2007 - 13:51 #2
Så melder siden fejl. Står lige et andet sted, så jeg poster lige fejlen når jeg kommer til min egen pc.
Avatar billede lordnelson Seniormester
20. januar 2007 - 14:45 #3
Ja det gør den nok
efter :

Set Rs = Conn.Execute(sql)
skal du lige have sat den her ind:
If Not (rs.BOF Or rs.EOF) Then


  objrs.PageSize = 9
    objrs.AbsolutePage = intPage
    intRecCount = objrs.PageSize
    intPageCount = objrs.PageCount
Do While Not objrs.EOF And intRecCount > 0

Husk end if når du er færdig

LN
Avatar billede plato Juniormester
20. januar 2007 - 16:58 #4
Fejlen den kommer med er:
ADODB.Recordset error '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

/test3/include/display.asp, line 68

som skulle være  rs.AbsolutePage = intPage

Jeg poster lige hele min kode.


Sub PrintTabel(Sql, TType)
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open Application("Provider")
   
        Set Rs = Conn.Execute(sql)
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 30
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
                  Response.Write("<table cellpadding='0' cellspacing='0'>")
                    Response.Write("<tr>")
                      Response.Write("<td><img src='grafik/koebnu.gif' alt='Køb filmen'> = Klik for at købe filmen online")
                      Response.Write("</td>")
                    Response.Write("</tr>")
                    Response.Write("<tr>")
                      Response.Write("<td colspan='2' width='698'><img src='grafik/filmkarakter.gif' alt=''></td>")
                    Response.Write("</tr>")
                    Response.Write("<tr>")
                      Response.Write("<td width='400' class='ListHeadline'><strong>Titel</strong>")

                      Response.Write("</td>")
                      Response.Write("<td>År</td>")
                    Response.Write("</tr>")

        Do While NOT rs.EOF And intRecCount > 0

                    Response.Write("<tr>")
                      Response.Write("<td class='ListContent'>")
Response.Write("<a class='ListLink' href='redirect.asp?mode=movie&amp;Id="&rs("Id")&"'>"&left(rs("Titel"),80)&"</a></td>")
                      Response.Write("<td class='ListContentThree'>"&rs("prodaar")&"&nbsp;</td>")
                    Response.Write("</tr>")
  intRecCount = intRecCount - 1
        rs.MoveNext
        Loop
                    Response.Write("<tr>")
                      Response.Write("<td height='2' colspan='2'>")
                      Response.Write("Du er nu på side" & Request.Querystring("page") & "")
For intNum = 1 To intPageCount

  Response.Write "<a href='forum.asp?mode=view&id="&Request.Querystring("id")&"&page=" & intNum & "'>" & intNum & "</a> "
Next
                    Response.Write("</td></tr>")
                  Response.Write("</table>")
end if
rs.close
set rs = nothing
End Sub
Avatar billede lordnelson Seniormester
21. januar 2007 - 12:10 #5
1. Brug adovbs.inc  / hav den i roden af webstedet
og brug:

<!--#include virtual="/adovbs.inc"-->

I din sun printtabel skal du prøve noget lign.
StrDSN = database
strSQL = "SELECT * FROM tabel"
rs.Open strSQL, strDSN, 1

Ikke så vigtigt hvordan
men 1 tallet efter er vigtigt du det
gør dit recordset understøtter paging

LN
Avatar billede plato Juniormester
21. januar 2007 - 13:48 #6
Så får jeg:
Microsoft VBScript compilation  error '800a0411'

Name redefined

/adovbs.inc, line 14

Const adOpenForwardOnly = 0
Avatar billede lordnelson Seniormester
21. januar 2007 - 14:33 #7
Så har du
<!--#include virtual="/adovbs.inc"-->

2 gange i det script
se efter i dine incl filer eller dine sub
så du kan roligt pille den

<!--#include virtual="/adovbs.inc"-->
Ud du har stående det ene sted , du har den nok i din
sunprintabel eller lign


LN
Avatar billede plato Juniormester
22. januar 2007 - 12:54 #8
Tak for hjælpen. Smider du lige et svar?
Avatar billede lordnelson Seniormester
22. januar 2007 - 16:39 #9
Godt det lykkedes
hej
LN
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