http://e.domaindlx.com/javahouse/test/test.asp Du får din "meny" för nästa resp. föregående där du anropar funktionen som ritar ut dom. Prova ingorera den raden. Jag har försökt ändra men då vissas koden som vanlig text. Någon som vet hur man ska ändra i koden för det ska fungera? <%Paging problem.
som ni ser nu så när man klickar på nästa så kommer föregående och nästa fram och är det på första sidan vissas bara nästa är du på sista sidan så står det föregående sida. Så Fungerar allt rät. Men sen är det så att föregående/nästa står längst upp men jag vill ha det längst ner på sidan. Men jag vet inte var jag ska ändra. Har fått artiklen från kurser och artiklar på pellesoft.se jag har ändrat lite. Men så här ser den ut och där är även mina ändringar. Så den passar mig. Men nu till problemet är också att den skriver 2,3,4,5,6,7,8,9,1 varför blir det inte 1,2,3,4,5,6,7,8 och 9 för? Och varför tar den inte 10 när den ska vara inställd för det? och varför blir resultatet at den tar 9 st. koden för paging ser ut så här.
<code>
<%
'## -- skapa connection object och ppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("test.mdb") & ";"
'## -- hur mnga poster ska visas per sida --
intPageSize = 10 '## -- byt ut till hur mnga 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 frsta sidan som default --
'## -- sql-frga fr att hmta data frn databasen --
strSQL = "SELECT fld_news_id, fld_news_header, fld_news_body FROM tbl_news ORDER BY fld_news_date DESC"
'## -- skapa och ppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestmmer hur mnga poster som varje sida ska best av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om ngra poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rtt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur mnga sidor bestr recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna fr beskaren/anvndaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
Response.write objRs("fld_news_id") & ""
Response.write ObjRs("fld_news_header") & ""
Response.write ObjRs("fld_news_body") & "<br>"
'## -- printa ut informationen till beskare/anvndaren --
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades fr anvndaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
' Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehller sjlva subrutinen fr sidnavigeringen --
%>
<!--#INCLUDE FILE="inc_pagingFunction.asp"-->
</code>
Så här ser paging sidan ut. Ber om ursäkt om Å,Ä och Ö har falligt bort det blir så när mang använder domaindlx editor som finns där.
in_pagingFunction.asp ser ut så här.
<code>
<%
Sub PageNavigation(ByVal Page, TotalPages)
Dim strScriptName
'## -- denna sidas namn --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- lnk till fregende sida --
'## -- kontrollera att det inte r frsta sidan som visas --
If CInt(Page) > 1 Then
'## -- inte frsta sidan som visas s gr en lnk --
Response.Write "<< Fregende "
Else
'## -- det r frsta sidan som ska visas. gr ingen lnk --
'Response.Write "<< Fregende "
End If
'## -- bygg upp sjlva pagebaren, dvs varje sidnummer ska ha en lnk
'## -- s att beskaren snabbt kan ta sig till rtt sida --
' For N = 1 To CInt(TotalPages)
' If N <> CInt(Page) Then
' '## -- ej aktuell sida, lnka --
' Response.Write "" & N & " "
' Else
'## -- aktuell sida, lnka ej --
' Response.Write "<B>" & N & "<B> "
' End If
' Next
'## -- lnk till nsta sida. om vi str p sista sidan ska den ej vara lnkad --
If CInt(Page) < CInt(TotalPages) Then
'## -- vi r inte p sista sidan --
Response.Write "Nsta>>"
Else
'## -- vi r p sista sidan. lnka ej --
'Response.Write "Nsta >>"
End If
End Sub
%>
</code>
men min fråga är var ska jag ändra på för att få nästa och föregående sida längst ner på sidan? Och hur ska jag ändra för få 10 st istället för 9 st.Sv: Paging problem.
PageNavigation(ByVal Page, TotalPages)Sv: Paging problem.
Men en annan fråga som jag har kört fast vid är varför Nästa/Föregående kommer längst upp när det är anrop till fil 2 som har föregående och nästa sida i sig.
Det är bara det som ska lösas nu så är allt rätt.
Tackar då vet jag något nytt. Har inte hört eller sätt call innan så visste inte att man hade call för att anropa en kod så. Men nu vet jag det.
Tackar så mycket för alla hjälp.
Hoppas du förstår mitt andra problem.Sv: Paging problem.
<code>
<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("test.mdb") & ";"
'## -- hur många poster ska visas per sida --
intPageSize = 11 '## -- 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 --
'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT fld_news_id, fld_news_header, fld_news_body FROM tbl_news ORDER BY fld_news_date DESC"
'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren --
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades för användaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehåller själva subrutinen för sidnavigeringen --
%>
<!--#INCLUDE FILE="inc_pagingFunction.asp"-->
</code>
var ska jag ändra också vidare för det ska fungera rätt?
jag prova flytta ner följande kod.
<code>
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
</code>
men då funka det inte vad ska man ändra och hur m.m för det ska komma på rätt plats alltså så Nästa/Föregående ska komma längst ner på vänster (Föregående) och Nästa på höger sida? Sv: Paging problem.
Function getRecords
Dim arrRecords
Dim intPageSize
Dim connstr
Dim SQL
Dim RS
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim Datum
Dim IP
Dim Namn
Dim Epost
Dim Hemsida
Dim Meddelande
Dim intTotalPages
Dim intTotalRecords
Set conn = Server.CreateObject("ADODB.Connection")
"Din egna connectionsträng"
SQL = "SELECT Datum, IP, Namn, Epost, Hemsida, Meddelande FROM gastbok ORDER BY ID DESC"
Set RS = conn.Execute(SQL)
If Not RS.EOF Then
m_arrRecords = RS.GetRows
getRecords = m_arrRecords
End If
RS.Close
Set RS = Nothing
conn.Close
Set conn = Nothing
End Function
'## -- skriver ut sidnavigeringen --
'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
Dim strScriptName
strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
'## -- skriv ut en länk till föregående sida --
If CInt(WichPage) > 1 Then
Response.Write "<a class=Front href=""" & strScriptName & "&page=" & WichPage - 1 & """><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
End Sub
'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
Dim strScriptName
Dim I
'## -- kolla om det finns några sidor --
If HowManyPages = 0 Then
Response.Write "0"
Exit Sub
End If
strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
'## -- skriv ut länkar till sid nummer n.
'## Den sida som visas ska ej vara länkad --
For I = 1 To HowManyPages
If CInt(I) <> CInt(WichPage) Then
Response.Write "<A class=Front href='" & strScriptName & "&page=" & I & "'>" & I & "</A> "
Else
Response.Write "<B>" & I & "</B> "
End If
Next
End Sub
'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
Dim strScriptName
strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
'## -- skriv ut en länk till nästa sida --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<a class=Front href=""" & strScriptName & "&page=" & WichPage + 1 & """>Nästa >></A>"
Else
Response.Write " Nästa >>"
End If
End Sub
'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
Dim m_intStart
m_intStart = ((PageSize * ViewPage) - PageSize)
getStartID = m_intStart
End Function
Function countPages(ByVal HowManyRecords, ByVal PageSize)
Dim m_intTotalPages, m_intRest
m_intTotalPages = HowManyRecords / PageSize
If m_intTotalPages < 1 Then
m_intTotalPages = 1
Else
m_intRest = m_intTotalPages - CLng(m_intTotalPages)
If m_intRest > 0 AND m_intRest < 0.5 Then
m_intTotalPages = CLng(m_intTotalPages) + 1
Else
m_intTotalPages = CLng(m_intTotalPages)
End If
End If
'## -- return how many pages --
countPages = m_intTotalPages
End Function
'##*********************************************************
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1
'## -- hur många poster ska visas per sida --
intPageSize = 3
'## -- hämta alla records, hämtas med metoden getrows och returneras
'## som en array. --
arrRecords = getRecords
'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)
'## -- printa ut sidan som ska visas
'## alla poster finns i arrayen arrRecords som
'## kommer från funktionen getRecords --
If IsArray(arrRecords) Then
'## -- hur många records finns det totalt --
intTotalRecords = UBound(arrRecords,2)
'## -- hur många sidor finns det i recordsetet --
intTotalPages = countPages(intTotalRecords, intPageSize)
Response.Write("<table width='90%'><tr><td class=Text3><center>")
Response.Write("Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</div></P>")
Response.Write("</center></td></tr></table>")
For I = intStartID To ((intStartID + intPageSize) -1)
Datum = arrRecords(0,I)
IP = arrRecords(1,I)
Namn = arrRecords(2,I)
Epost = arrRecords(3,I)
Hemsida = arrRecords(4,I)
Meddelande = arrRecords(5,I)
'Namn, Epost, Datum, Meddelande, IP
Call utskrift()
If I = UBound(arrRecords,2) Then Exit For
Next
Else
'## -- inga poster fanns i db --
intPage = 0
intTotalRecords = 0
intTotalPages = 0
'## -- skriv ut att inga poster hittades --
Response.Write "<P>Inga poster hittades.</P>"
End If
'## -- skriv ut sidnavigerings menyn --
response.write("<table class=Text1 border=0 width='99%'><tr><td align=left width='33%'>")
Call PrevPage(intPage)
response.write("</td><td align=middle width='33%'>")
response.write("Antal sidor: ")
Call PageNumbers(intTotalPages,intPage)
response.write("</td><td align=right width='33%'>")
Call NextPage(intTotalPages,intPage)
response.write("</td></tr></table>")
%>