---
title: "Paging, även vid sökningar ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/134193-paging-även-vid-sökningar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Observer"
published: "2005-09-13T12:09:07.000Z"
updated: "2005-09-20T11:04:14.000Z"
replies: 8
views: 406
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/134193-paging-även-vid-sökningar"
---

# Paging, även vid sökningar ?

## #1 — Observer, 2005-09-13T12:09Z

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 ?

Permalänk: https://www.webforum.nu/p/134193

## #2 — @nders, 2005-09-13T12:10Z

Du måste skicka med alla sökvillkoren i sidlänkarna också.

Permalänk: https://www.webforum.nu/p/1671401

## #3 — Observer, 2005-09-13T12:13Z

Ja, det var det jag trodde med och gjorde så här i paging funktionen, där länkarna skrivs ut:

```

'## -- 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 --
        [B]Response.Write "<A href=""" & strScriptName & "?page=" & Page + 1 & "&Action=Search&PersNr=" & PersNr & "&AnstNr=" & AnstNr & "&eNamn=" & eNamn & " "">"[/B]
        Response.Write "<img src=""/images/Pages-forward.gif"" border=""0"" Align=""AbsMiddle"" ALT=""Klicka för Nästa Sida""></A>"
```

 

Det är väl så du menar ?
jag trodde det skulle lösa allt...

Permalänk: https://www.webforum.nu/p/1671402

## #4 — @nders, 2005-09-13T12:22Z

Ser länkarna riktiga ut i webbläsaren då? Hur hämtar du in värdena?

Permalänk: https://www.webforum.nu/p/1671405

## #5 — Observer, 2005-09-13T12:59Z

Ja, det **ser** korrekt ut i alla fall:

```

http://www.blahblah.net/Member_List.asp?page=2&PersNr=&AnstNr=&eNamn=Andersson
```

 

Hämtar in dom så här:

```

	PersNr = Request.Querystring("PersNr")
	AnstNr = Request.Querystring("AnstNr")
	fNamnf = Request.Querystring("fNamnf")
	eNamn = Request.Querystring("eNamn")
```

 

Ser ok ut i mina ögon, men börjar klart tvivla på dom vid det här laget...

Permalänk: https://www.webforum.nu/p/1671415

## #6 — emission, 2005-09-13T15:23Z

Kontrollera hur SQL-satsen blir. Finns eNamn etc. tillgängliga i subben som söker? Dimma utanför.

En annan sak att tänka på är att man måste URLEncode:a argumenten som ska vara med i länken.

Permalänk: https://www.webforum.nu/p/1671463

## #7 — Observer, 2005-09-14T09:37Z

OK, jag testade att skriva ut min SQL sats och den ser ok ut i mina ögon:

```

SELECT * FROM tblMedlemmar RIGHT JOIN TblCompany ON TblCompany.Ftagkod = TblMedlemmar.Ftagkod WHERE tblMedlemmar.eNamn = 'Andersson' AND Active = 1 ORDER BY tblMedlemmar.eNamn ASC, tblMedlemmar.fnamnf ASC
```

 

Och jag lade till URLEncode när jag skriver ut länken:

```
Response.Write "<A href=""" & strScriptName & "?page=" & Page + 1 & "&Action=Search&PersNr=" & PersNr & "&AnstNr=" & AnstNr & "&eNamn=" & Server.URLEncode(eNamn) & " "">"
```

 

Då blir länken så här, om jag kopierar den från adressfönstret:

```

http://blahblah.net/Member_List.asp?page=2&PersNr=&AnstNr=&eNamn=Andersson
```

 

Rent generellt sett,  är jag på rätt spår ?

  :q

Permalänk: https://www.webforum.nu/p/1671704

## #8 — emission, 2005-09-14T12:43Z

> **Observer skrev:**
>
> Rent generellt sett,  är jag på rätt spår ?
> 
>   :q

Helt klart

Permalänk: https://www.webforum.nu/p/1671767

## #9 — Observer, 2005-09-20T11:04Z

Ahh, det **var** jag som var blind!

Hade inte läst in variabeln ENamnSelection
och då kunde ju inte SQL satsen funka som den skulle...

Nu funkar allt, och jag är glad igen!   :birp 

Tack för att ni kikade och kom med tips!

Permalänk: https://www.webforum.nu/p/1673578

---

Tråden på webben: https://www.webforum.nu/amne/asp/134193-paging-även-vid-sökningar
