Avatar billede fomse Nybegynder
24. januar 2004 - 09:08 Der er 11 kommentarer og
1 løsning

En der vil hjælpe mig med paging?

Jeg har følgende nyhedsside:
'###################################################
'# Setup
'###################################################
' // Name of Template File.
NewsTemplatePath="nyheder.asp"

' // Virtuel Path. (Where the files are located)
NewsFilePath="NewsAndPoll/news/"

'// Database connection string
FinNewsConstr = "Provider=MICROSOFT.JET.OLEDB.4.0; Data Source="&server.mappath(NewsFilePath&"news.mdb")

' // Debug Mode. (Show Error Msg if any Errors)
NewsDebugMode=false

' // Date format. Set to 1033 if using American date format
Session.LCID = 3081

' ####################
' ## Look and feel  ##
' ####################
' // newsBgImage : Used for background color,thin lines and graph bars.
newsBgImage = "215D84.gif"

' // newsFont : Used for text
newsFont = "<font face=""Verdana"" color=""#000000"" size=""2"">"

' // newsFont : Used for text in Box
newsFontBox = "<font face=""Verdana"" color=""#000000"" size=""1"">"

' // newsHeading : Heading for the Box.
' // Use a image to make it look nice, otherwise uncomment the other line and change the text and/or font
'newsHeading = "<img src="""&NewsFilePath&"images/news_text.gif"">"
newsHeading = "<b><font color=""#FFFFFF"" face=""Verdana"" size=""2"">Seneste nyt</font></b>"

'Number of max news items to show in box
newsMaxNo=3

'#####################################################################
'## Text used in script. Change this to your own words/Language    ##
'#####################################################################
'Text for "more"
newsTxtMore="Læs mere"
'Text for "News Archive"
newsTxtNewsArchive="Nyhedsarkiv"

'###################################################
'# Start
'###################################################
' // Setup DBStuff
dim FinNewsDB,FinNewsRS
set FinNewsDB=server.createobject("ADODB.Connection")
set FinNewsRS=server.createobject("ADODB.Recordset")

' // Get mode we are in
dim sModeFin

sModeFin = LCase(request("FinNewsMode"))
SELECT CASE sModeFin
    CASE "archive"
        showArchive()
    CASE "viewdetails"
        showDetails()
    CASE else
        showNewsBox()
END SELECT

' // Cleanup
set FinNewsRS=nothing
set FinNewsDB=nothing

'############################################
'# showNewsBox()
'# Get the lastest "newsMaxNo" news items and show box
'############################################
function showNewsBox()
' // Get the data
FinNewsOpenDB()
FinNewsRS.open "select top "&newsMaxNo&" * from tblNews ORDER BY NewsDateTime DESC",FinNewsDB,1,1
if not (FinNewsRS.bof and FinNewsRS.eof) then
    ' // Write out table Header
    %>
<table border="0" cellspacing="0" width="140">
<tr>
    <td width="100%" bgcolor="#0000ff">
    <table border="0" cellspacing="0" width="140" bgcolor="#ffffff">
    <tr>
        <td colspan="2" bgcolor="#0000ff" width="140" align="center"><img src="<%=NewsFilePath%>images/spacer.gif" height=3 width=3><br><%=newsHeading%><br><img src="<%=NewsFilePath%>images/spacer.gif" height=3 width=3></td>
    </tr>
    <tr>
        <td width="140" valign="top" align="center" colspan="2"><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
    </tr>
    <%
    ' // Write out each news item
    while not FinNewsRS.eof
        %>
        <tr>
            <td width="10" valign="top" align="right"><%=newsFontBox%>·</font></td>
            <td width="130" valign="top" align="left"><%=newsFontBox%>(<%=myDateFormat(FinNewsRS("NewsDateTime"))%>)<br><%=FinNewsRS("Heading")%>.&nbsp;<a href="<%=NewsTemplatePath%>?FinNewsMode=ViewDetails&FinNewsID=<%=FinNewsRS("ID")%>"><br><%=newsTxtMore%></a></font><br><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
        </tr>
        <%
        FinNewsRS.movenext
    wend

    ' // Write out table Footer
    %>
    <tr>
        <td width="140" valign="top" align="center" colspan="2"><img src="<%=NewsFilePath%>images/<%=newsBgImage%>" height=1 width=95%></td>
    </tr>
    <tr>
        <td width="140" valign="top" align="center" colspan="2"><%=newsFontBox%><a href="<%=NewsTemplatePath%>?FinNewsMode=Archive"><%=newsTxtNewsArchive%></a></font></td>
    </tr>
    </table>
    </td>
</tr>
</table>
    <%
FinNewsRS.close
FinNewsDB.close

end if
end function

'############################################
'# showArchive()
'# Show all the news in the Archive (Short form)
'############################################
function showArchive()
' // Get the data
FinNewsOpenDB()
FinNewsRS.open "select * from tblNews ORDER BY NewsDateTime DESC",FinNewsDB,1,1
if not (FinNewsRS.bof and FinNewsRS.eof) then
    ' // Write out table Header
    %>
    <table border="0" cellspacing="0" width="100%">
    <tr><td width="140" valign="top" align="Left" colspan="2"><%=newsFont%><font size="2" color="#0000ff"><b><%=newsTxtNewsArchive%></b></font></font></td></tr>
    <tr><td width="140" valign="top" align="center" colspan="2"><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td></tr>
    <%
    ' // Write out each news item
    while not FinNewsRS.eof
        %>
        <tr>
            <td width="10" valign="top" align="right"><%=newsFont%>·</font></td>
            <td width="100%" valign="top" align="left"><%=newsFont%>(<%=myDateFormat(FinNewsRS("NewsDateTime"))%>)<br><%=FinNewsRS("Heading")%>.&nbsp;<a href="<%=NewsTemplatePath%>?FinNewsMode=ViewDetails&FinNewsID=<%=FinNewsRS("ID")%>"><br><%=newsTxtMore%></a></font><br><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
        </tr>
        <%
        FinNewsRS.movenext
    wend

    ' // Write out table Footer
    %>
    </table>
    <%
FinNewsRS.close
FinNewsDB.close
end if
end function

'############################################
'# showDetails()
'# Show the selected news item using the template
'############################################
function showDetails()

dim FinNewsID
FinNewsID=request("FinNewsID")
if FinNewsID="" then
    Response.write("Error could not find ID")
end if

' // Get the data
FinNewsOpenDB()
FinNewsRS.open "select * from tblNews where ID="&FinNewsID,FinNewsDB,1,1
if not (FinNewsRS.bof and FinNewsRS.eof) then
    ' // Write out table Header
    %>
    <table border="0" cellspacing="0" width="100%">
    <tr>
        <td width="10" valign="top" align="right">&nbsp;</td>
        <td width="100%" valign="top" align="left"><center><%=newsFont%><font size="2"><b><%=FinNewsRS("Heading")%></b></font><br>
        <%=newsFont%>(<%=myDateFormat(FinNewsRS("NewsDateTime"))%>)</center><br>
        <%=FinNewsRS("FullText")%></font><br><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
    <tr>
        <td width="100%" valign="top" align="center" colspan="2"><%=newsFont%><a href="<%=NewsTemplatePath%>?FinNewsMode=Archive"><%=newsTxtNewsArchive%></a></font><br><br></td>
    </tr>
    </tr>
    </table>
    <%
FinNewsRS.close
FinNewsDB.close
end if
end function

'############################################
'# FinNewsOpenDB()
'# Open database, show error if any problems
'############################################
sub FinNewsOpenDB()
On ERROR Resume next
FinNewsDB.open FinNewsConstr, "",""
if Err.number<>0 then
    Response.write("Nyheds Error : Kunne ikke åbne databasen, tjek om PollFilePath er sat rigtigt.")
    Response.end
end if
ON ERROR GOTO 0
end sub

'#############################################
'# myDateFormat(myDate)
'# Make the date look nice. DD/MM/YYYY if euro
'#############################################
function myDateFormat(myDate)
myDate=FormatDateTime(myDate,2)
tmpArray = split( myDate, "/" )
if len(tmpArray(0))<2 then tmpArray(0)= "0"&tmpArray(0)
if len(tmpArray(1))<2 then tmpArray(1)= "0"&tmpArray(1)
if len(tmpArray(2))<4 then tmpArray(2)= "20"&tmpArray(2)
myDateFormat = join(tmpArray,"/")
end function
%>

Og vil gerne have paging på således at det kun vises 10 nyheder pr. side.
Har fundet dette men kan ikke finde ud af hvor/hvordan jeg skal bygge det ind:
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/aspdigital/db/demo.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
Avatar billede keysersoze Ekspert
24. januar 2004 - 09:35 #1
det er ret svært - for ikke at sige umuligt - at hjælpe hvis ikke du fortæller hvad der går galt?
Avatar billede fomse Nybegynder
24. januar 2004 - 09:46 #2
Okay!
1. Kan ikke finde ud af at bygge paging ind i funktionen showArchive():
'############################################
'# showArchive()
'# Show all the news in the Archive (Short form)
'############################################
function showArchive()
' // Get the data
FinNewsOpenDB()
FinNewsRS.open "select * from tblNews ORDER BY NewsDateTime DESC",FinNewsDB,1,1
if not (FinNewsRS.bof and FinNewsRS.eof) then
    ' // Write out table Header
    %>
    <table border="0" cellspacing="0" width="100%">
    <tr><td width="140" valign="top" align="Left" colspan="2"><%=newsFont%><font size="2" color="#0000ff"><b><%=newsTxtNewsArchive%></b></font></font></td></tr>
    <tr><td width="140" valign="top" align="center" colspan="2"><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td></tr>
    <%
    ' // Write out each news item
    while not FinNewsRS.eof
        %>
        <tr>
            <td width="10" valign="top" align="right"><%=newsFont%>·</font></td>
            <td width="100%" valign="top" align="left"><%=newsFont%>(<%=myDateFormat(FinNewsRS("NewsDateTime"))%>)<br><%=FinNewsRS("Heading")%>.&nbsp;<a href="<%=NewsTemplatePath%>?FinNewsMode=ViewDetails&FinNewsID=<%=FinNewsRS("ID")%>"><br><%=newsTxtMore%></a></font><br><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
        </tr>
        <%
        FinNewsRS.movenext
    wend

    ' // Write out table Footer
    %>
    </table>
    <%
FinNewsRS.close
FinNewsDB.close
end if
end function

2. Kan ikke lige nævne fejlen(e) der er kommet en del under de forsøg jeg har gjort:-) Er ikke en sønderlig haj til ASP....

Hjælper det dig?

Fomse
Avatar billede keysersoze Ekspert
24. januar 2004 - 09:53 #3
har du forsøgt at gå ud fra denne tutorial;

http://activedeveloper.dk/aspdigital/kapitel2/paging.asp

Det skal siges, at når man bygger paging er det en idé ikke at forsøge at lave det hele på én gang - det er ikke så svært, men der kan let gå noget galt
Avatar billede fomse Nybegynder
24. januar 2004 - 09:59 #4
Har prøvet det! Lavede en test fra bunden som i Dennis's eks. og fik det til at virke, men når jeg så ville bygge det ind i min nyhedsside så går det galt!
Avatar billede fomse Nybegynder
24. januar 2004 - 10:03 #5
Har også prøvet ud fra dette:
http://www.eksperten.dk/spm/447995
Avatar billede keysersoze Ekspert
24. januar 2004 - 10:12 #6
det er samme artikel så det vil jo blive det samme :)

Min deltagelse på eksperten rækker kun til at afhjælpe problemer - ikke decideret at lave noget for folk... så jeg tror jeg står af og så må vi håbe der kommer en forbi der vil :)
Avatar billede fomse Nybegynder
24. januar 2004 - 10:14 #7
Helt iorden! Takker for hjælpen so fare:-)
Avatar billede eagleeye Praktikant
24. januar 2004 - 12:30 #8
Jeg vil da gerne give et forsøg på hvordan din function skal se ud..
Prøv sådan her:


function showArchive()
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If
' // Get the data
FinNewsOpenDB()
FinNewsRS.open "select * from tblNews ORDER BY NewsDateTime DESC",FinNewsDB,1
if not (FinNewsRS.bof and FinNewsRS.eof) then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    ' // Write out table Header
    %>
    <table border="0" cellspacing="0" width="100%">
    <tr><td width="140" valign="top" align="Left" colspan="2"><%=newsFont%><font size="2" color="#0000ff"><b><%=newsTxtNewsArchive%></b></font></font></td></tr>
    <tr><td width="140" valign="top" align="center" colspan="2"><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td></tr>
    <%
    ' // Write out each news item
    do while not FinNewsRS.eof And intRecCount > 0
        %>
        <tr>
            <td width="10" valign="top" align="right"><%=newsFont%>·</font></td>
            <td width="100%" valign="top" align="left"><%=newsFont%>(<%=myDateFormat(FinNewsRS("NewsDateTime"))%>)<br><%=FinNewsRS("Heading")%>.&nbsp;<a href="<%=NewsTemplatePath%>?FinNewsMode=ViewDetails&FinNewsID=<%=FinNewsRS("ID")%>"><br><%=newsTxtMore%></a></font><br><img src="<%=NewsFilePath%>images/spacer.gif" height=4 width=1></td>
        </tr>
        <%
        FinNewsRS.movenext
        intRecCount = intRecCount - 1
    loop

    ' // Write out table Footer
    %>
    </table>
    <%
    Response.Write "<table><tr><td align=""center"">
    Response.Write "Gå til side "
    For intNum = 1 To intPageCount
      Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
    Next

    Response.Write "<br>"
    If Clng(intPage) > 1 Then
      Response.Write "<a href=?page=" & intPage - 1 & ">Forrige</a>"
    Else
      Response.Write "Forrige"
    End If

    Response.Write "&nbsp;"

    If Clng(intPage) < Clng(intPageCount) Then
      Response.Write "<a href=?page=" & intPage + 1 ">Næste</a> "     
    Else
      Response.Write "Næste"
    End If
    Response.Write "</td></tr></table>"

FinNewsRS.close
FinNewsDB.close
end if
end function
Avatar billede fomse Nybegynder
24. januar 2004 - 13:14 #9
eagleeye>>
Det virker næsten perfekt!!
tror bare at i:
    For intNum = 1 To intPageCount
      Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
    Next

skal der også ligge info om at det er ?FinNewsMode=Archive, det ser ud som om den benytter function showDetails() når man fx. går til side 2!!
Hvordan gør jeg det?
Avatar billede eagleeye Praktikant
24. januar 2004 - 13:17 #10
Ok, men det skal vel også ind i linksne Forrige og Næste hvis du beholder dem??
Du tilføjer det sdåan her:

Response.Write "<a href=?FinNewsMode=Archive&page=" & intNum & ">" & intNum & "</a> "
Avatar billede fomse Nybegynder
24. januar 2004 - 13:21 #11
Kanon nu virker det perfekt!!
Response.Write "<a href=?FinNewsMode=Archive?page=" & intNum & ">" & intNum & "</a> "
altså ? imellem  istedet for &

Du er genial!! Smid et svar.....
Avatar billede eagleeye Praktikant
24. januar 2004 - 13:25 #12
Ok her et svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester