webForumDet fria alternativet

Paging, igen

ASPur ASP

7 svar · 195 visningar · startad av web00132

web00132Medlem sedan maj 2001797 inlägg
#1

Jag gjorde precis som PatrikB beskrivit
här. Och det fungerade bra.

Men nu undrar jag, när jag lägger till att jag vill ha fram ett recordset där alla poster börjar med en speciell bokstav så säger den:
"Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."

vid:

rsitems.AbsolutePage = intPage

Vad beror detta på?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det beror på att du får ett tomt recordset tillbaka, det finns alltså inga poster i databasen som uppfyller ditt villkor.

Om du använder skriptet precis som i inlägget så borde det räcka att ändra detta

'## -- vilken sida i recordset uppdelningen ska visas --
objRS.AbsolutePage = intPage

'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = objRS.PageCount

If objRS.EOF Then
Response.Write "Det finns inga inlägg."
Else

till


If objRS.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- vilken sida i recordset uppdelningen ska visas --
objRS.AbsolutePage = intPage

'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = objRS.PageCount

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 22 jan 2002]

JonasTMedlem sedan dec. 2001148 inlägg
#3

Finns det inget script där man bara behöver fylla i sökvägen till databasen för att få paging?

web00132Medlem sedan maj 2001797 inlägg
#4

Ja, tack, nu visas sidan iaf. Men den borde returnera poster från DB:n.

Så här blir SQL-satsen efter att servern behandlat den:

SELECT * FROM pop WHERE itemname LIKE 'f*' ORDER BY itemname;

...och den stämmer ju. Den funkar om jag kör den direkt i Access. Och den ser ut så här om jag visar den i browsern.

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Like är lite olika beroende på vilken drivrutin man använder.

Om du använder OLEDB som provider så är det bättre att använda % istf *

SELECT * FROM pop WHERE itemname LIKE 'f%' ORDER BY itemname

------------------
essentitia preter non sans multiplicandum

web00132Medlem sedan maj 2001797 inlägg
#6

Tänkte precis skriva att jag redan testat det men det hade jag uppenbarligen inte. Tack ska du ha!

MaxPayneMedlem sedan jan. 200218 inlägg
#7

Hakar på tråden här lite! Jag är intresserad av att lära mig hur man gör paging på själva pagingen!
Det kan ju bli en väldans massa sifferlänkar med mycket info annars!

Tips?

PatrikBMedlem sedan mars 20002 836 inlägg
#8

ok, för att göra paging på pagingen :e

2 Subbar, en för pagebaren och en för paging på page baren:

	'## -- show all pages as numbers and linked to page --
	Public Sub PageNo(ByVal iPage, iTotPages, iPageSize)
		Dim N
		Dim intPageCount, intPageSpan, intStart
		
		If Not g_objFunc.IsArgument(iPage) OR Not g_objFunc.IsArgument(iTotPages) Then Exit Sub

		'## -- last page in pagespan --
		intPageSpan = PageSpan(iPage, iPageSize)
		
		'## -- start page in pagespan --
		intStart = (intPageSpan - iPageSize) + 1

		'## -- show pagenumbers --
		For N = intStart TO intPageSpan
			intPageCount = intPageCount + 1
			If N <> CLng(iPage) Then
				Response.Write "<A href=""" & g_strScriptName & "?page=" & N & """ " & _
					"class=""winContent"">" & _
					N & "</A> "
			Else
				Response.Write "<B>" & N & "</B> "
			End If
			If N = iTotPages Then Exit For
		Next
	End Sub
	
	'## -----------------------------------------------------------------------

	'## -- paging on pagenumbers --
	Public Function PageSpan(ByVal iPage, ByVal iPageSpan)
		Dim m_intPageSpan, m_intRest
		m_intPageSpan = iPage / iPageSpan
		
		If m_intPageSpan < 1 Then
			m_intPageSpan = 1
		Else
			m_intRest = m_intPageSpan - CLng(m_intPageSpan)
			
			If m_intRest > 0 AND m_intRest < 0.5 Then
				m_intPageSpan = CLng(m_intPageSpan) + 1
			Else
				m_intPageSpan = CLng(m_intPageSpan)
			End If
		End If
		
		'## -- return last page in pagespan --
		PageSpan = m_intPageSpan & "0"
	End Function

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

137 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)