Avatar billede steckel Nybegynder
25. december 2003 - 18:50 Der er 10 kommentarer og
1 løsning

ny side hvis der kommer for mange resultater.

Nu er det sådan at jeg har være herinde før og fået rigtig meget hjælp men er nu kommet dertil hvor jeg ikke hvad hvordan jeg skal nu gøre det...

Da jeg har være herinde og fået hjælp til at lave en side i asp der gik ind og fandt alle de mapper der er i mit download mappe og derefter hvis man trykket på en af mapperne, kommer man ind i den og ser alle de forskellige filer man kan downloade.

Nu er det bare sådan at jeg gerne vil have det lavet så det kommer op i en table hvor der er 3 rækker med 9 kolonner. Og hvis der er mere en 27 mapper/filer kommer der et link hvor man kan trykke til næste side og se resten.

Nu har jeg prøvet at lavet det selv og med hjælp herinde fra... Men intet har virkede ind tilvider. Derfor er der 200 poin denne gang.
Avatar billede steckel Nybegynder
25. december 2003 - 18:57 #1
og de filer siden f.eks kun skal kunne vise er .mdb , .txt , .doc , .xls
Avatar billede ellebaek Nybegynder
25. december 2003 - 23:24 #2
Dette script laver et link til hver enkelt mappe, opdelt i 3 rækker med 9 kolonner, og hvis der er flere end 27 mapper bliver der paget til en side mere..

Scriptet er testet, men kig på det om det virker.
Du skal kun ændre i hvilken mappe du vil se på:

<%
ImageDir = "../../" ' Mappen med filerne Kun denne linie skal ændres.
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.SubFolders

intPage = Request.Querystring("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

intPageSize = 27 ' Antal filer på hver side
intImgCount = objFiles.Count
intPageCount = -Int(-(intImgCount/intPageSize))

Response.Write "<p><strong>" & intImgCount & " Foldere - "
Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>"
response.write "<table>"
i = 0
For Each FolderObject In objFiles
if i mod 3 = 0 then
response.write "<tr>"
end if
response.write "<td>"
intFile = intFile +1
If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then
  If Left(FolderObject.Name,1)<>"_" Then
      Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/"
      Response.Write(Replace(FolderObject.Name, " ", "%20"))
      response.write """>"
      Response.Write FolderObject.Name
    End if

End If
response.write "</td>"
if i mod 3 = 2 then
response.write "</tr>"
end if
i = i+1
Next

strScriptName = Request.Servervariables("ScriptName")
Response.Write "<p>Gå til side "
For i = 1 To intPageCount
Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> "   
Next
Response.Write "</p>"
Set objFS = Nothing
%>

Hvis det skal kunne mere, så sig til.
Avatar billede steckel Nybegynder
26. december 2003 - 04:12 #3
Nu er det bare sådan at de mapper der bliver vist er sorter så de ser sådan her ud :

mappe 1      mappe 2      mappe 3
mappe 4      mappe 5      mappe 6
mappe 7      mappe 8      mappe 9
osv....

Hvordan får jeg den til at vise mapperne så de bliver sorter ned af og ikke hen af siden? f.eks sådan her.:

mappe 1      mappe 4      mappe 7
mappe 2      mappe 5      mappe 8
mappe 3      mappe 6      mappe 9
Avatar billede ellebaek Nybegynder
26. december 2003 - 11:54 #4
<%
ImageDir = "../../" ' Mappen med filerne Kun denne linie skal ændres.
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.SubFolders

intPage = Request.Querystring("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

intPageSize = 27 ' Antal filer på hver side
intImgCount = objFiles.Count
intPageCount = -Int(-(intImgCount/intPageSize))

Response.Write "<p><strong>" & intImgCount & " Foldere - "
Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>"
response.write "<table><tr>"
i = 0
For Each FolderObject In objFiles
if i mod 9 = 0 then
response.write "<td>"
end if
intFile = intFile +1
If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then
  If Left(FolderObject.Name,1)<>"_" Then
      Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/"
      Response.Write(Replace(FolderObject.Name, " ", "%20"))
      response.write """>"
      Response.Write FolderObject.Name
    End if

End If
response.write "<br>"
if i mod 9 = 8 then
response.write "</td>"
end if
i = i+1
Next
response.write "</tr></table>"
strScriptName = Request.Servervariables("ScriptName")
Response.Write "<p>Gå til side "
For i = 1 To intPageCount
Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> "   
Next
Response.Write "</p>"
Set objFS = Nothing
%>

På denne måde skulle de gerne stilles op på den måde du siger...
Avatar billede steckel Nybegynder
26. december 2003 - 14:30 #5
Okay. Lige en sidste ting.

Hvordan gør man så at hver anden <td> får en farve??
Avatar billede steckel Nybegynder
26. december 2003 - 14:43 #6
Nu hvor jeg også gerne vil have vist de filer der er i den mappe man nu trykke på, har jeg selv sat en kode ind, som jeg også har fået herfra. Men den kommer med en fejl som ser sådan her ud:

Server.MapPath() error 'ASP 0171 : 80004005'
Missing Path
/sider/extra/xdownload.asp, line 52
The Path parameter must be specified for the MapPath method.

Når jeg finder line 52 ser den sådan her ud:

strPhysicalPath = Server.MapPath(ShowSub)

Sætter lige hele koden fra siden på her så du kan se hvad der kan være galt:

<%
ImageDir = "/download/" ' Mappen med filerne Kun denne linie skal ændres.
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.SubFolders

intPage = Request.Querystring("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

intPageSize = 27 ' Antal filer på hver side
intImgCount = objFiles.Count
intPageCount = -Int(-(intImgCount/intPageSize))

Response.Write "<p><strong>" & intImgCount & " Mapper - "
Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>"
response.write "<table><tr>"
i = 0
For Each FolderObject In objFiles
if i mod 9 = 0 then
response.write "<td>"
end if
intFile = intFile +1
If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then
  If Left(FolderObject.Name,1)<>"_" Then
      Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/"
      Response.Write(Replace(FolderObject.Name, " ", "%20"))
      response.write """>"
      Response.Write FolderObject.Name
    End if

End If
response.write "<br>"
if i mod 9 = 8 then
response.write "</td>"
end if
i = i+1
Next
response.write "</tr></table>"
strScriptName = Request.Servervariables("ScriptName")
Response.Write "<p>Gå til side "
For i = 1 To intPageCount
Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> "   
Next
Response.Write "</p>"
Set objFS = Nothing



  SiteName = request.servervariables("script_name")
  strPhysicalPath = Server.MapPath(ShowSub)

    If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files


    For Each fil in objFolderContents
      if InStr(1,"jpg,txt,asp,bmp,gif", LCase(objFSO.GetExtensionName(fil.name))) > 0 then   
        arrayBuild = arrayBuild & fil.name & "|"
      end if
    next
    if arrayBuild <> "" then arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
 
    myArray = Split(arrayBuild, "|")
    antalBillederPrSide = 9
    maxCols = 3
    noCols = 0
    start = Request.Querystring("start")
    if start = "" then start = 0 
    Antalsider = int(ubound(myarray) / antalBillederPrSide)
    for i = start to (start + antalBillederPrSide-1)
      if not i > ubound(myarray) then
        if noCols = 0 then Response.Write "<tr>"
        Response.write "<td>"
        Response.Write "<a href=""" & ShowSub & "/" & myArray(i) &""">" & myArray(i) & "</a>"
        Response.write "</td>"
        noCols = noCols + 1
        if noCols = maxCols then
          noCols = 0
          Response.Write "</tr>"
        end if
      else
        nesteside = 1
      end if
    Next
    if noCols > 0 then Response.Write "</tr>"
    response.write "<tr><td colspan=""3"">"
    if start <> 0 then
      response.write "<a href=""" & siteName & "?start=" & (start - antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Forrige</a>"
    end if
    response.write(" ")
    if nesteside <> 1 then
      response.write "<a href=""" & siteName & "?start=" & (start + antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Næste</a>"
    end if
    response.write "</td></tr>"

    Set objFSO = Nothing
  End if
%>
Avatar billede ellebaek Nybegynder
27. december 2003 - 14:55 #7
Jeg gætter på problemet ligger i at der ikke er defineret en showSub.
hvis der ikke er det vil den nok lave en fejl i den path.

<%
ImageDir = "/download/" ' Mappen med filerne Kun denne linie skal ændres.
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.SubFolders

intPage = Request.Querystring("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

intPageSize = 27 ' Antal filer på hver side
intImgCount = objFiles.Count
intPageCount = -Int(-(intImgCount/intPageSize))

Response.Write "<p><strong>" & intImgCount & " Mapper - "
Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>"
response.write "<table><tr>"
i = 0
For Each FolderObject In objFiles
if i mod 9 = 0 then
response.write "<td>"
end if
intFile = intFile +1
If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then
  If Left(FolderObject.Name,1)<>"_" Then
      Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/"
      Response.Write(Replace(FolderObject.Name, " ", "%20"))
      response.write """>"
      Response.Write FolderObject.Name
    End if

End If
response.write "<br>"
if i mod 9 = 8 then
response.write "</td>"
end if
i = i+1
Next
response.write "</tr></table>"
strScriptName = Request.Servervariables("ScriptName")
Response.Write "<p>Gå til side "
For i = 1 To intPageCount
Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> "   
Next
Response.Write "</p>"
Set objFS = Nothing



  SiteName = request.servervariables("script_name")
 

    If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    strPhysicalPath = Server.MapPath(ShowSub)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files


    For Each fil in objFolderContents
      if InStr(1,"jpg,txt,asp,bmp,gif", LCase(objFSO.GetExtensionName(fil.name))) > 0 then   
        arrayBuild = arrayBuild & fil.name & "|"
      end if
    next
    if arrayBuild <> "" then arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
 
    myArray = Split(arrayBuild, "|")
    antalBillederPrSide = 9
    maxCols = 3
    noCols = 0
    start = Request.Querystring("start")
    if start = "" then start = 0 
    Antalsider = int(ubound(myarray) / antalBillederPrSide)
    for i = start to (start + antalBillederPrSide-1)
      if not i > ubound(myarray) then
        if noCols = 0 then Response.Write "<tr>"
        Response.write "<td>"
        Response.Write "<a href=""" & ShowSub & "/" & myArray(i) &""">" & myArray(i) & "</a>"
        Response.write "</td>"
        noCols = noCols + 1
        if noCols = maxCols then
          noCols = 0
          Response.Write "</tr>"
        end if
      else
        nesteside = 1
      end if
    Next
    if noCols > 0 then Response.Write "</tr>"
    response.write "<tr><td colspan=""3"">"
    if start <> 0 then
      response.write "<a href=""" & siteName & "?start=" & (start - antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Forrige</a>"
    end if
    response.write(" ")
    if nesteside <> 1 then
      response.write "<a href=""" & siteName & "?start=" & (start + antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Næste</a>"
    end if
    response.write "</td></tr>"

    Set objFSO = Nothing
  End if
%>
Avatar billede steckel Nybegynder
27. december 2003 - 19:29 #8
Nu har jeg lige lagt den op for at teste den, og det første virker findt.
Men den vil bare stadig ikke vise de filer der ligger i mappe.
Du kan se her hvad der ikke sker... :(
http://hhx.madox.dk/xdownload.asp
Avatar billede ellebaek Nybegynder
27. december 2003 - 20:57 #9
Jeg kan ikke helt overskue lige nu, hvordan man både kan handle mapper og filer på samme tid...

Jeg mig lidt omkring og vender tilbage, men jeg er ikke sikker på det kan lade sig gøre på denne måde som det er stillet op nu...

Så skal du muligvis vise filerne nedenunder i stedet..

Altså så du får vist mapperne, med paging, som det er nu, og nedenunder det får vist alle filerne der ligger i mappen, hvordan ville det være ?
Avatar billede steckel Nybegynder
27. december 2003 - 22:51 #10
Nej, det går ikke rigtig... Men jeg kigger også lige på det, når jeg engang får tid til det... ;)

Ellers må der jo være nogen der kan finde ud af det... altså det sidste..*G*
Avatar billede ellebaek Nybegynder
27. december 2003 - 22:52 #11
Jeg kan måske flette det ind i en side, som kommer til at ligge til sidst..
Men jeg er ikke sikker på jeg kan overskue at den skal hente foldere og filer samtidig...

Jeg er ikke helt sikker på det kan lade sig gøre...
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