webForumDet fria alternativet

zPageNavigation

ASP

0 svar · 936 visningar · startad av PatrikB

Medlem sedan mars 20002 836 inlägg
Frågan#1

Ett enkelt sidnavigerings script:

'--------------------------------------------------------------------------------
' zPAGE NAVIGATION BAR
'--------------------------------------------------------------------------------
' Written by: PatrikB a.k.a mrWize
' Contact: mrwize@mrwize.nu
' Homepage: [url="http://mrwize.nu"]http://mrwize.nu[/url] 
'--------------------------------------------------------------------------------
Sub PageNavigation(nPage, nTotPages)
	Dim strScriptName	' AS String
	Dim I				' AS Integer
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	' If not first page, then show previous
	'--------------------------------------
	If CInt(nPage) <> 1 Then
		Response.Write("<a href=""" & strScriptName & "?" & _
				"page=" & nPage - 1 & """>Föregående</a> - ")
	End If	' end previous

	' loop through total pages and create links
	' to all pages in recordset
	'------------------------------------------
	For I = 1 TO nTotPages
		If CInt(I) <> CInt(nPage) Then
			Response.Write("<a href=""" & strScriptName & "?" & _
		"page=" & I & """>" & I & "</a> ")
		Else 
			Response.Write "<b>[" & I & "]</b> "
		End If
	Next	' next page

	' If Not current page is the last page
	' then show next page
	'-------------------------------------
	If CInt(nPage) <> CInt(nTotPages) Then
		Response.Write(" - <a href=""" & strScriptName & "?" & _
				"page=" & nPage + 1 & """>Nästa</a>")
	End If	' end next page
End Sub
'--------------------------------------------------------------------------------
' END PAGENAVIGATION BAR
'--------------------------------------------------------------------------------

För att kunna använda denna sub så måste ett ADODB.Recordset skapas enligt följande:

		' sql-query to grab info from database
		'-------------------------------------
		strSQL = "SELECT * FROM TABLE_NAME"

		' grab records from database
		'---------------------------
		Set objRS = Server.CreateObject("ADODB.Recordset")
		With objRS
			.CacheSize = 5
			.PageSize = 10
			.Open strSQL, objConn, 3, 1
			.AbsolutePage = intPage
			.PageSize = 10
		End With
			intCount = objRS.RecordCount
			intTotPages = objRS.PageCount
			
			If Not objRS.EOF Then
				Do Until objRS.EOF or nRecCount >= objRS.PageSize
					Response.Write "<b>" & objRS(0) & "</b><br>"
					nRecCount = nRecCount + 1
					objRS.MoveNext
				Loop
			End If

			objRS.Close
		Set objRS = nothing

Innan man skapar recordsetet på sidan behöver man hämta en QueryString som håller koll på vilken sida besökaren är på. Detta görs enligt nedan:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#006666">
intPage = Requet.QueryString("page")
If intPage = "" Then intPage = 1

Nu är det bara en sak kvar att göra .... bestämma vart sidnavigeringen ska ligga på sidan. Sidnavigeringen anropar du så här:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#006666">
Call PageNavigation(intPage, intTotPages)

Tror att det var allt,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

[Redigerat av PatrikB den 17 nov 2000]

[Redigerat av PatrikB den 14 dec 2000]

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)