Avatar billede pelskee Nybegynder
28. september 2005 - 12:56 Der er 15 kommentarer og
1 løsning

Recordset paging

jeg har et problem med min recordset paging:
http://www.mysneakers.dk/dk_products.asp?Brand=Nike

man kan godt klikke på tallene for at bladre
men ikke på NEXT og PREVIOUS - den medtager Brand 1 ekstra gang


dreamweaver koden... håber i kan hjælpe


<%
'  *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

' set the record count
rsProducts_total = rsProducts.RecordCount

' set the number of rows displayed on this page
If (rsProducts_numRows < 0) Then
  rsProducts_numRows = rsProducts_total
Elseif (rsProducts_numRows = 0) Then
  rsProducts_numRows = 1
End If

' set the first and last displayed record
rsProducts_first = 1
rsProducts_last  = rsProducts_first + rsProducts_numRows - 1

' if we have the correct record count, check the other stats
If (rsProducts_total <> -1) Then
  If (rsProducts_first > rsProducts_total) Then rsProducts_first = rsProducts_total
  If (rsProducts_last > rsProducts_total) Then rsProducts_last = rsProducts_total
  If (rsProducts_numRows > rsProducts_total) Then rsProducts_numRows = rsProducts_total
End If
%>
<%
' *** Recordset Stats: if we don't know the record count, manually count them

If (rsProducts_total = -1) Then

  ' count the total records by iterating through the recordset
  rsProducts_total=0
  While (Not rsProducts.EOF)
    rsProducts_total = rsProducts_total + 1
    rsProducts.MoveNext
  Wend

  ' reset the cursor to the beginning
  If (rsProducts.CursorType > 0) Then
    rsProducts.MoveFirst
  Else
    rsProducts.Requery
  End If

  ' set the number of rows displayed on this page
  If (rsProducts_numRows < 0 Or rsProducts_numRows > rsProducts_total) Then
    rsProducts_numRows = rsProducts_total
  End If

  ' set the first and last displayed record
  rsProducts_first = 1
  rsProducts_last = rsProducts_first + rsProducts_numRows - 1
  If (rsProducts_first > rsProducts_total) Then rsProducts_first = rsProducts_total
  If (rsProducts_last > rsProducts_total) Then rsProducts_last = rsProducts_total

End If
%>
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables

Set MM_rs    = rsProducts
MM_rsCount  = rsProducts_total
MM_size      = rsProducts_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
  MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

  ' use index parameter if defined, otherwise use offset parameter
  r = Request.QueryString("index")
  If r = "" Then r = Request.QueryString("offset")
  If r <> "" Then MM_offset = Int(r)

  ' if we have a record count, check if we are past the end of the recordset
  If (MM_rsCount <> -1) Then
    If (MM_offset >= MM_rsCount Or MM_offset = -1) Then  ' past end or move last
      If ((MM_rsCount Mod MM_size) > 0) Then        ' last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' move the cursor to the selected record
  i = 0
  While ((Not MM_rs.EOF) And (i < MM_offset Or MM_offset = -1))
    MM_rs.MoveNext
    i = i + 1
  Wend
  If (MM_rs.EOF) Then MM_offset = i  ' set MM_offset to the last possible record

End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

  ' walk to the end of the display range for this page
  i = MM_offset
  While (Not MM_rs.EOF And (MM_size < 0 Or i < MM_offset + MM_size))
    MM_rs.MoveNext
    i = i + 1
  Wend

  ' if we walked off the end of the recordset, set MM_rsCount and MM_size
  If (MM_rs.EOF) Then
    MM_rsCount = i
    If (MM_size < 0 Or MM_size > MM_rsCount) Then MM_size = MM_rsCount
  End If

  ' if we walked off the end, set the offset based on page size
  If (MM_rs.EOF And Not MM_paramIsDefined) Then
    If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
      If ((MM_rsCount Mod MM_size) > 0) Then
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' reset the cursor to the beginning
  If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
  Else
    MM_rs.Requery
  End If

  ' move the cursor to the selected record
  i = 0
  While (Not MM_rs.EOF And i < MM_offset)
    MM_rs.MoveNext
    i = i + 1
  Wend
End If
%>
<%
' *** Move To Record: update recordset stats

' set the first and last displayed record
rsProducts_first = MM_offset + 1
rsProducts_last  = MM_offset + MM_size
If (MM_rsCount <> -1) Then
  If (rsProducts_first > MM_rsCount) Then rsProducts_first = MM_rsCount
  If (rsProducts_last > MM_rsCount) Then rsProducts_last = MM_rsCount
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then MM_removeList = MM_removeList & "&" & MM_paramName & "="
MM_keepURL="":MM_keepForm="":MM_keepBoth="":MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each Item In Request.QueryString
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each Item In Request.Form
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
if (MM_keepBoth <> "") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
if (MM_keepURL <> "")  Then MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
if (MM_keepForm <> "") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 0) Then
  MM_moveParam = "offset"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then MM_keepMove = MM_keepMove & "&"
urlStr = "dk_products.asp" & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = urlStr & "0"
MM_moveLast  = urlStr & "-1"
MM_moveNext  = urlStr & Cstr(MM_offset + MM_size)
prev = MM_offset - MM_size
If (prev < 0) Then prev = 0
MM_movePrev  = urlStr & Cstr(prev)
%>
Avatar billede fennec Nybegynder
28. september 2005 - 13:40 #1
Det virker fint hos mig. Jeg kan sagtens bruge prev/next på din side...
Avatar billede fennec Nybegynder
28. september 2005 - 13:41 #2
.. Har du selv rette problemet?? Eller er det mig der ikke kan sehvor det er :o)
Avatar billede pelskee Nybegynder
28. september 2005 - 13:45 #3
mærkeligt hvis man klikker på linket virker det, men hvis man klikker på Nike i toppen for siden og så kommer ind og vil klikke videre, så virker det ikke:
http://www.mysneakers.dk/uk_index.asp
Avatar billede fennec Nybegynder
28. september 2005 - 15:33 #4
Prøv at tilføje dette lige efter samme kode bare med "offset" (sidst i scriptet)

If (MM_size > 0) Then
  MM_moveParam = "Brand"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If
Avatar billede pelskee Nybegynder
29. september 2005 - 07:33 #5
det spiser den ikke. fejl:
Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Left'

/dk_products.asp, line 315



har indsat det sidst i koden:
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables

Set MM_rs    = rsProducts
MM_rsCount  = rsProducts_total
MM_size      = rsProducts_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
  MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

  ' use index parameter if defined, otherwise use offset parameter
  r = Request.QueryString("index")
  If r = "" Then r = Request.QueryString("offset")
  If r <> "" Then MM_offset = Int(r)

  ' if we have a record count, check if we are past the end of the recordset
  If (MM_rsCount <> -1) Then
    If (MM_offset >= MM_rsCount Or MM_offset = -1) Then  ' past end or move last
      If ((MM_rsCount Mod MM_size) > 0) Then        ' last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' move the cursor to the selected record
  i = 0
  While ((Not MM_rs.EOF) And (i < MM_offset Or MM_offset = -1))
    MM_rs.MoveNext
    i = i + 1
  Wend
  If (MM_rs.EOF) Then MM_offset = i  ' set MM_offset to the last possible record

End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

  ' walk to the end of the display range for this page
  i = MM_offset
  While (Not MM_rs.EOF And (MM_size < 0 Or i < MM_offset + MM_size))
    MM_rs.MoveNext
    i = i + 1
  Wend

  ' if we walked off the end of the recordset, set MM_rsCount and MM_size
  If (MM_rs.EOF) Then
    MM_rsCount = i
    If (MM_size < 0 Or MM_size > MM_rsCount) Then MM_size = MM_rsCount
  End If

  ' if we walked off the end, set the offset based on page size
  If (MM_rs.EOF And Not MM_paramIsDefined) Then
    If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
      If ((MM_rsCount Mod MM_size) > 0) Then
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' reset the cursor to the beginning
  If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
  Else
    MM_rs.Requery
  End If

  ' move the cursor to the selected record
  i = 0
  While (Not MM_rs.EOF And i < MM_offset)
    MM_rs.MoveNext
    i = i + 1
  Wend
End If
%>
<%
' *** Move To Record: update recordset stats

' set the first and last displayed record
rsProducts_first = MM_offset + 1
rsProducts_last  = MM_offset + MM_size
If (MM_rsCount <> -1) Then
  If (rsProducts_first > MM_rsCount) Then rsProducts_first = MM_rsCount
  If (rsProducts_last > MM_rsCount) Then rsProducts_last = MM_rsCount
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then MM_removeList = MM_removeList & "&" & MM_paramName & "="
MM_keepURL="":MM_keepForm="":MM_keepBoth="":MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each Item In Request.QueryString
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each Item In Request.Form
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
if (MM_keepBoth <> "") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
if (MM_keepURL <> "")  Then MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
if (MM_keepForm <> "") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 0) Then
  MM_moveParam = "offset"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then MM_keepMove = MM_keepMove & "&"
urlStr = "dk_products.asp" & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = urlStr & "0"
MM_moveLast  = urlStr & "-1"
MM_moveNext  = urlStr & Cstr(MM_offset + MM_size)
prev = MM_offset - MM_size
If (prev < 0) Then prev = 0
MM_movePrev  = urlStr & Cstr(prev)

If (MM_size > 0) Then
  MM_moveParam = "Brand"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If
%>
Avatar billede fennec Nybegynder
29. september 2005 - 08:25 #6
lidt for langt nede :o)

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 0) Then
  MM_moveParam = "offset"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

If (MM_size > 0) Then
  MM_moveParam = "Brand"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then MM_keepMove = MM_keepMove & "&"
urlStr = "dk_products.asp" & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = urlStr & "0"
MM_moveLast  = urlStr & "-1"
MM_moveNext  = urlStr & Cstr(MM_offset + MM_size)
prev = MM_offset - MM_size
If (prev < 0) Then prev = 0
MM_movePrev  = urlStr & Cstr(prev)
Avatar billede pelskee Nybegynder
29. september 2005 - 08:37 #7
så skriver den: http://www.mysneakers.dk/dk_products.asp?Brand=9
den får ikke brand navnet og 'offset' med
Avatar billede pelskee Nybegynder
29. september 2005 - 21:06 #8
har du nogen ideer ?
Avatar billede fennec Nybegynder
30. september 2005 - 08:36 #9
Ja det begynder at knibe lidt. Den kode som Dreamweaver laver er ikke særlig drømme agtig :o)

Jeg har kikke lidt (meget) på koden, for at finde ud af hvordan den fungere, og indtil vidre er jeg kommet frem til at problemet måske er der hvor du udskriver prev/next/first/last. Kan du ikke lige vise koden til det..

også kan du godt slette "Brand" koden igen vi satte ind.
Avatar billede pelskee Nybegynder
30. september 2005 - 09:22 #10
dette er det hele:
<%
'  *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

' set the record count
rsProducts_total = rsProducts.RecordCount

' set the number of rows displayed on this page
If (rsProducts_numRows < 0) Then
  rsProducts_numRows = rsProducts_total
Elseif (rsProducts_numRows = 0) Then
  rsProducts_numRows = 1
End If

' set the first and last displayed record
rsProducts_first = 1
rsProducts_last  = rsProducts_first + rsProducts_numRows - 1

' if we have the correct record count, check the other stats
If (rsProducts_total <> -1) Then
  If (rsProducts_first > rsProducts_total) Then rsProducts_first = rsProducts_total
  If (rsProducts_last > rsProducts_total) Then rsProducts_last = rsProducts_total
  If (rsProducts_numRows > rsProducts_total) Then rsProducts_numRows = rsProducts_total
End If
%>
<%
' *** Recordset Stats: if we don't know the record count, manually count them

If (rsProducts_total = -1) Then

  ' count the total records by iterating through the recordset
  rsProducts_total=0
  While (Not rsProducts.EOF)
    rsProducts_total = rsProducts_total + 1
    rsProducts.MoveNext
  Wend

  ' reset the cursor to the beginning
  If (rsProducts.CursorType > 0) Then
    rsProducts.MoveFirst
  Else
    rsProducts.Requery
  End If

  ' set the number of rows displayed on this page
  If (rsProducts_numRows < 0 Or rsProducts_numRows > rsProducts_total) Then
    rsProducts_numRows = rsProducts_total
  End If

  ' set the first and last displayed record
  rsProducts_first = 1
  rsProducts_last = rsProducts_first + rsProducts_numRows - 1
  If (rsProducts_first > rsProducts_total) Then rsProducts_first = rsProducts_total
  If (rsProducts_last > rsProducts_total) Then rsProducts_last = rsProducts_total

End If
%>
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables

Set MM_rs    = rsProducts
MM_rsCount  = rsProducts_total
MM_size      = rsProducts_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
  MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

  ' use index parameter if defined, otherwise use offset parameter
  r = Request.QueryString("index")
  If r = "" Then r = Request.QueryString("offset")
  If r <> "" Then MM_offset = Int(r)

  ' if we have a record count, check if we are past the end of the recordset
  If (MM_rsCount <> -1) Then
    If (MM_offset >= MM_rsCount Or MM_offset = -1) Then  ' past end or move last
      If ((MM_rsCount Mod MM_size) > 0) Then        ' last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' move the cursor to the selected record
  i = 0
  While ((Not MM_rs.EOF) And (i < MM_offset Or MM_offset = -1))
    MM_rs.MoveNext
    i = i + 1
  Wend
  If (MM_rs.EOF) Then MM_offset = i  ' set MM_offset to the last possible record

End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

  ' walk to the end of the display range for this page
  i = MM_offset
  While (Not MM_rs.EOF And (MM_size < 0 Or i < MM_offset + MM_size))
    MM_rs.MoveNext
    i = i + 1
  Wend

  ' if we walked off the end of the recordset, set MM_rsCount and MM_size
  If (MM_rs.EOF) Then
    MM_rsCount = i
    If (MM_size < 0 Or MM_size > MM_rsCount) Then MM_size = MM_rsCount
  End If

  ' if we walked off the end, set the offset based on page size
  If (MM_rs.EOF And Not MM_paramIsDefined) Then
    If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
      If ((MM_rsCount Mod MM_size) > 0) Then
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' reset the cursor to the beginning
  If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
  Else
    MM_rs.Requery
  End If

  ' move the cursor to the selected record
  i = 0
  While (Not MM_rs.EOF And i < MM_offset)
    MM_rs.MoveNext
    i = i + 1
  Wend
End If
%>
<%
' *** Move To Record: update recordset stats

' set the first and last displayed record
rsProducts_first = MM_offset + 1
rsProducts_last  = MM_offset + MM_size
If (MM_rsCount <> -1) Then
  If (rsProducts_first > MM_rsCount) Then rsProducts_first = MM_rsCount
  If (rsProducts_last > MM_rsCount) Then rsProducts_last = MM_rsCount
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then MM_removeList = MM_removeList & "&" & MM_paramName & "="
MM_keepURL="":MM_keepForm="":MM_keepBoth="":MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each Item In Request.QueryString
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each Item In Request.Form
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
if (MM_keepBoth <> "") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
if (MM_keepURL <> "")  Then MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
if (MM_keepForm <> "") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 0) Then
  MM_moveParam = "offset"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then MM_keepMove = MM_keepMove & "&"
urlStr = "dk_products.asp" & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = urlStr & "0"
MM_moveLast  = urlStr & "-1"
MM_moveNext  = urlStr & Cstr(MM_offset + MM_size)
prev = MM_offset - MM_size
If (prev < 0) Then prev = 0
MM_movePrev  = urlStr & Cstr(prev)
%>
Avatar billede fennec Nybegynder
30. september 2005 - 09:44 #11
Der må være mere end dette, for der bliver ikke udskrevet nogen links i denne kode. Det jeg søger er noget i denne stil:

<a href="<%= MM_moveNext %>">Next</a>
Avatar billede pelskee Nybegynder
30. september 2005 - 11:07 #12
er det dette:

                    <td width="23%" align="center"><% If MM_offset <> 0 Then %>
                        <a href="<%=MM_moveFirst%>">First</a>
                        <% End If ' end MM_offset <> 0 %>
                    </td>
                    <td width="31%" align="center"><% If MM_offset <> 0 Then %>
                        <a href="<%=MM_movePrev%>">Previous</a>
                        <% End If ' end MM_offset <> 0 %>
                    </td>
                    <td width="23%" align="center"><% If Not MM_atTotal Then %>
                        <a href="<%=MM_moveNext%>">Next</a>
                        <% End If ' end Not MM_atTotal %>
                    </td>
                    <td width="23%" align="center"><% If Not MM_atTotal Then %>
                        <a href="<%=MM_moveLast%>">Last</a>
                        <% End If ' end Not MM_atTotal %>
Avatar billede fennec Nybegynder
30. september 2005 - 12:22 #13
Jeps, men der er ingen fejl i, og det var mit sidste bud, uden at skulle ændre hele scriptet, så det ikke kører på Dreamweaver kode.

Hvis du vil ændre Dreamweaver koden, er der et script her:
http://activedeveloper.dk/artikler/default.asp?articleid=31

Det er ikke svært at lave selv, så måske du skulle over veje det...
Avatar billede pelskee Nybegynder
03. oktober 2005 - 07:59 #14
okay. tak for hjælpen.

point...
Avatar billede fennec Nybegynder
03. oktober 2005 - 08:11 #15
Du siger bare til, hvis du skal have hjælp med scriptet fra activedeveloper.dk.

.o) <-- One Eyed Jack
Avatar billede pelskee Nybegynder
03. oktober 2005 - 08:29 #16
will do Mr. One Eyed Jack
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