Du måste skicka med alla sökvillkoren i sidlänkarna också.
Hej!
Jag har försökt få till det här med paging, som så många andra.
Jag har sökt här på webforum och inte hittat någon lösning.
Så, antingen har jag gjort fel, eller så kanske någon kan hjälpa mig att hitta en lösning...
Jo, pagingen fungerar utmärkt om jag listar en tabell med en SQL sats som den här:
"SELECT * FROM tblMedlemmar RIGHT JOIN TblCompany ON TblCompany.Ftagkod = TblMedlemmar.Ftagkod ORDER BY tblMedlemmar.id"
Men, så fort jag blandar in lite andra sökningar så går det snett...
Vad gör jag fel ?
'============Paging
Dim intPageSize, intPage, intTotalPages, intCounter
intPageSize = 100 '## -- byt ut till hur många poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then
intPage = 1 '## -- visa första sidan som default --
End If
ENamnSelection = Request("ENamnSelection")
' Kan vara 1, 2 eller 3
' 1 = Börjar med, 2 = exakt, 3 = Innehåller
WildCard = Chr(37)
StrSQL = " SELECT * "
strSQL = strSQL & " FROM tblMedlemmar "
StrSQL = strSQL & " RIGHT JOIN TblCompany ON TblCompany.Ftagkod = TblMedlemmar.Ftagkod"
StrSQL = strSQL & " WHERE"
strSQL = strSQL & " tblMedlemmar.Active = 1 "
If eNamn <> "" Then
If ENamnSelection = 1 Then
strSQL = strSQL & "AND tblMedlemmar.eNamn LIKE '" & eNamn & WildCard & "' "
ElseIf ENamnSelection = 2 Then
strSQL = strSQL & "AND tblMedlemmar.eNamn = '" & eNamn & "' "
ElseIf ENamnSelection = 3 Then
strSQL = strSQL & "AND tblMedlemmar.eNamn LIKE '" & WildCard & eNamn & WildCard & "' "
End If
End If
strSQL = strSQL & " ORDER BY tblMedlemmar.eNamn ASC, tblMedlemmar.fnamnf ASC"
With objRst
.ActiveConnection = objConn
.Source = StrSQL
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
Antal = objRst.RecordCount
Dim bgColor
bgColor = "#ECEAE6"
If NOT objRst.EOF Then
'## -- visa rätt sida i recordsetet --
objRst.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRst.PageCount
Do Until objRst.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
if bgColor = "#ECEAE6" THEN
bgColor = "#FFFFFF"
ELSE
bgColor = "#ECEAE6"
end if
%>
<Tr>
<td class=anvisn BgColor="<%=bgColor%>"><a href="Member_View.asp?id=<%= objRst("id")%>"><%= objRst("Personnummer")%></a></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("AnstNr")%></td>
<td class=anvisn BgColor="<%=bgColor%>"><% InitialUpperCase(objRst("FNamnf"))%></td>
<td class=anvisn BgColor="<%=bgColor%>"><% InitialUpperCase(objRst("Enamn"))%></td>
<td class=anvisn BgColor="<%=bgColor%>"><% InitialUpperCase(objRst("Hemadress"))%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= PostNr%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("Ort")%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("TelHem")%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("Avdelning")%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("GeoPlac")%></td>
<td class=anvisn BgColor="<%=bgColor%>"><%= objRst("FtagBen")%></td>
</tr>
<%
objRst.MoveNext
Loop
End If
%>
<TR valign="top">
<TD colspan="11" align="center" class=anvisn>
<%
Call PageNavigation(intPage, intTotalPages)
%>
koden till PageNavigation:
'=====================================================================================================================
Sub PageNavigation(ByVal Page, TotalPages)
Dim strScriptName, N
'## -- denna sidas namn --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- länk till föregående sida --
'## -- kontrollera att det inte är första sidan som visas --
If CInt(Page) > 1 Then
'## -- inte första sidan som visas så gör en länk --
Response.Write "<A href=""" & strScriptName & "?page=" & Page - 1 & "&PersNr=" & PersNr & " ""><img src=""/images/Pages-back.gif"" border=""0"" Align=""AbsMiddle"" ALT=""Klicka för Föregående Sida""></A> "
Else
'## -- det är första sidan som ska visas. gör ingen länk --
' Response.Write "<< Föregående "
End If
'## -- bygg upp själva pagebaren, dvs varje sidnummer ska ha en länk
'## -- så att besökaren snabbt kan ta sig till rätt sida --
For N = 1 To CInt(TotalPages)
If N <> CInt(Page) Then
'## -- ej aktuell sida, länka --
Response.Write "<A href=""" & strScriptName & "?page=" & N & """>" & N & "</A> "
Else
'## -- aktuell sida, länka ej --
Response.Write "<B>" & N & "<B> "
End If
Next
'## -- länk till nästa sida. om vi står på sista sidan ska den ej vara länkad --
If CInt(Page) < CInt(TotalPages) Then
'## -- vi är inte på sista sidan --
Response.Write "<A href=""" & strScriptName & "?page=" & Page + 1 & "&Action=Search&PersNr=" & PersNr & "&AnstNr=" & AnstNr & "&eNamn=" & eNamn & " "">"
Response.Write "<img src=""/images/Pages-forward.gif"" border=""0"" Align=""AbsMiddle"" ALT=""Klicka för Nästa Sida""></A>"
Else
'## -- vi är på sista sidan. länka ej --
' Response.Write "Next >>"
End If
End Sub
Säg att jag nu söker på Andersson,
då får jag 102 träffar.
100 första visas på sidan 1, som planerat. Kanon!
Men, så klickar jag på nästa sida, och då förväntar jag mig endast 2 poster.
Men då börjar listan från början igen och visar mig 3800 träffar på 39 sidor.
Hur skall jag få ordning på detta när jag använder mig av sökningar ?
(ni känner igen paging funktionen, jag har fått den härifrån...)
Har jag gjort något tokigt ?
