webForumDet fria alternativet

Jag vill ha paging på detta!

ASP

20 svar · 800 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Kan någon hjälpa mig att få in paging i denna kodsnutt! Hoppas någon är duktig och kan hjälpa mig! UTAN DATABAS

<%If Request.QueryString("visa") = "pics" And Session("admin") = "ok" Then

MAPPNAMN = "pics/"
Set Mappkoll = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = Mappkoll.GetFolder(Server.MapPath(MAPPNAMN))%>

<table border="0" width="480">
<tr>
<td colspan="2"><b><a href="index.asp?visa=inne">Adminstart</a> <a href="upload.asp">Ladda upp ny bild</a> <%If Session("admin") = "ok" Then%><a href="index.asp?visa=kategori">Kategorier</a> <a href="index.asp?visa=users">Användare</a> <%End If%><a href="java script:Logut('index.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>
<tr>
<td colspan="2"><b>Lista alla filer i mappen. </b></td>
</tr>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>

<%For Each File in Mapp.Files%>

<tr>
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td>
</tr>

<%Next
If Request.QueryString("do") = "pic" And Session("admin") = "ok" Then%>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>
<tr>
<td colspan="2"><img src="pics/<%=Request.QueryString("bild")%>" width="250" border="1"><br><%=Request.QueryString("bild")%></td>
</tr>
<%End If%>
</table>

<%Set Mapp = Nothing
Set Mappkoll = Nothing

End If%>

Medlem sedan dec. 200012 464 inlägg
#2

Om du ersätter detta

<%For Each File in Mapp.Files%> 

<tr> 
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td> 
</tr> 

<%Next

med

<%
Dim pagesize,pages,currentPage,start,stop,i
pagesisze = 5
pages = (mapp.files.count-1)/pagesize + 1
currentPage = cint(request.querystring("pageNumber"))
if currentPage = "" then currentPage = 1
if currentPage > pages then currentPage = pages
start = pagesize*(currentPage-1) + 1
stop = start + pagesize - 1
if  stop > mapp.files.count then stop = mapp.files.count
for i = start to stop
file = mapp.files(i)
%> 

<tr> 
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td> 
</tr> 

<%Next 
for i = 1 to pages
    if  i = currentPage then
        response.write " " & i & " "
    else
        response.write " <a href='dinsida.asp?visa=pcis&page=" & i & "'>" & i & "</a> "
    end if
next

Du får byta dinsida.asp till vad din fil heter

Medlem sedan dec. 20011 860 inlägg
#3

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03F2)
Identifierare förväntas.
/Bildbank/index.asp, line 927, column 37
Dim pagesize,pages,currentPage,start,stop,i
------------------------------------^

Medlem sedan juni 200032 967 inlägg
#4

Byt ut stop på alla ställen mot något annat.

Mvh,

Medlem sedan dec. 20011 860 inlägg
#5

Ett stavfel etta var felet:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A0005)
Ogiltigt proceduranrop eller argument.
/Bildbank/index.asp, line 936

Denna rad:
File = Mapp.Files(i)

Medlem sedan dec. 200012 464 inlägg
#6

Ojdå ;) (Snabeln, vad betyder stop i VB-sammanhang?)

Jag hittade en felstavning här

pagesisze = 5

skall vara

pagesize = 5
Medlem sedan dec. 200012 464 inlägg
#7

Om du byter ut det mot

set File = Mapp.Files(i)

?

Medlem sedan dec. 20011 860 inlägg
#8

Nope - samma fel

Medlem sedan juni 200032 967 inlägg
#9

Snabeln, vad betyder stop i VB-sammanhang?

Det känns som att sätta en breakpoint i koden. Exekveringen av programmet stoppas när man kommer dit. Jag antar att F8 tar mig vidare genom exekveringen. Jag har dock inte själv använt Stop, så jag gissar lite bara. Men det är VB det, jag tror inte det används i VB-Script.

Mvh,

Medlem sedan maj 200010 687 inlägg
#10

Det är alltså bara en debugkod som inte kommer med när man kompilerar?

Medlem sedan dec. 20011 860 inlägg
#11

Vet du hur jag då ska göra?

Medlem sedan juni 200032 967 inlägg
#12

Asa, jag är ledsen, men jag har inte en aning. Jag kan ingenting om paging och är ganska kass på FSO. :(

Erik, jag vill inte att vi går så långt bort från topic, men:

Caution Be sure to remove any Stop statements before you create an .exe file. If a stand-alone Visual Basic application (.exe) encounters a Stop statement, it treats it as an End statement and terminates execution immediately, without any QueryUnload or Unload events occurring.

Om du vill fortsätta diskussionen så föreslår jag att vi transporterar oss till Visual Basic-forumet, så har vi inte sönder Asas tråd mer.

Mvh,

Medlem sedan dec. 20011 860 inlägg
#13

Okej - tackar! Får kolla nån annanstans eller kanske LarsG kan?!?

Medlem sedan dec. 200012 464 inlägg
#14

Nej, jag har inget direkt att komma med just nu.

Hur ser koden från rad 920-940 ut nu?

Medlem sedan dec. 20011 860 inlägg
#15

Jag böt namn på Pages och currentPage bara ifall du undrar! Blev lika fast jag hade de namnen:

<%Pagesize = 2
Sidor = (Mapp.Files.Count-1)/Pagesize + 1
Sidan = CInt(Request.Querystring("sida"))
If Sidan = "" Then Sidan = 1
If Sidan > Sidor Then Sidan = Sidor
Start = Pagesize*(Sidan-1) + 1
Slut = Start + Pagesize - 1
If Slut > Mapp.Files.Count Then Slut = Mapp.Files.Count
For i = Start To Slut
Set File = Mapp.Files(i)%>
<tr>
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>&size=<%=Round(File.Size/1000, 1)%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td>
</tr>
<%Next %>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>
<tr>
<td colspan="2">
<%For i = 1 To Sidor
If i = Sidan Then
Response.Write "<b>" & i & "</b>"
Else
Response.Write " <a href='index.asp?visa=pics&sida=" & i & "'>" & i & "</a> "
End If
Next%>

Medlem sedan dec. 20011 860 inlägg
#16

Kan du inte testa koden själv då?

Medlem sedan dec. 200012 464 inlägg
#17

Kan du inte testa koden själv då?

Nej, tyvärr inte.

Kan du lägga in lite testutskrifter?

If Slut > Mapp.Files.Count Then Slut = Mapp.Files.Count 
response.write "Start: " & start & " slut: " & slut & "<br>"
For i = Start To Slut
   response.write "I loopen i = " & i & "<br>"
Medlem sedan dec. 20011 860 inlägg
#18

Går inte att se alls! Men om jag tar bort detta:

Set File = Mapp.Files(i)%>
<tr>
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>&size=<%=Round(File.Size/1000, 1)%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td>
</tr>
<%

så skriver den iallafall ut loopen.

Fast sidnavigeringen är lite konstig vid olika antal filer i mappen!

Medlem sedan dec. 200012 464 inlägg
#19

Om du skriver så här så borde filerna komma ut i alla fall

<%Pagesize = 2 
Sidor = (Mapp.Files.Count-1)/Pagesize + 1 
Sidan = CInt(Request.Querystring("sida")) 
If Sidan = "" Then Sidan = 1 
If Sidan > Sidor Then Sidan = Sidor 
Start = Pagesize*(Sidan-1) + 1 
Slut = Start + Pagesize - 1 
If Slut > Mapp.Files.Count Then Slut = Mapp.Files.Count 
i = 1
For each file in Mapp.Files
if i >= start then %>
<tr> 
<td><a href="index.asp?visa=pics&do=pic&bild=<%=File.Name%>&size=<%=Round(File.Size/1000, 1)%>"><%=File.Name%></a></td><td align="right"><a href="java script:Tabort('index.asp?visa=deletepic&name=<%=File.Name%>')">Ta bort</a></td> 
</tr>
<% end if
if i = slut then exit for
i = i + 1 
Next %> 
<tr> 
<td colspan="2"><img src="bilder/dot1.gif"></td> 
</tr> 
<tr> 
<td colspan="2"> 
<%For i = 1 To Sidor 
If i = Sidan Then 
Response.Write "<b>" & i & "</b>" 
Else 
Response.Write " <a href='index.asp?visa=pics&sida=" & i & "'>" & i & "</a> " 
End If 
Next%>
Medlem sedan dec. 20011 860 inlägg
#20

Hittade en annan kod som funkar bra! Fick hjälp av Mattias (aspsidan.nu)

<%PageSize = 10

PageCount = Mapp.Files.Count \ PageSize + 1
PageIndex = Request.QueryString("sida")
If PageIndex = "" Then
PageIndex = 1
End If

FirstIndex = (PageIndex - 1) * PageSize
LastIndex = FirstIndex + PageSize

If Mapp.Files.Count = 0 Then%>
<tr>
<td colspan="3">Inga bilder!</td>
</tr>
<%Else
For Each File In Mapp.Files
If Index < FirstIndex Then
ElseIf Index < LastIndex Then%>
<tr>
<td><a href="pic.asp?do=pic&bild=<%=File.Name%>&size=<%=Round(File.Size/1000, 1)%>&sida=<%=Request.QueryString("sida")%>"><%=File.Name%></a></td><td><%=Round(File.Size/1000, 1)%> kb</td><td align="right"><a href="pic.asp?visa=delete&name=<%=File.Name%>&sida=<%=Request.QueryString("sida")%>">Ta bort</a></td>
</tr>
<%Else
Exit For
End If
Index = Index + 1
Next
End If%>

<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td colspan="3">
<%For i = 1 To PageCount
If i = CInt(PageIndex) Then
Response.Write "<b>" & i & "</b>"
Else
Response.Write " <a href=pic.asp?sida=" & i & ">" & i & "</a> "
End If
Next%>

413 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
281 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)