07. november 2002 - 22:13Der er
16 kommentarer og 1 løsning
Hjælp til Photo Album i ASP
Hejsa
Jeg sidder og knokler med et Foto Album i ASP, men kan ikke helt få det til at virke. Foto Albummet består af to sider "PhotoAlbum.asp" og "ShowPicture.asp". Hvis vi starter med PhotoAlbum.asp, kunne jeg godt tænke mig at dropdown menuen samt 1,2,3,4 (antal sider), kom ned og stå i bunden af siden. Plus at den tekst der står under billedet evt. blev fjernet.
Hvad angår ShowPicture.asp, som er den side billedet popper frem på, når du har klikket på billedet i PhotoAlbum.asp. Skal det være sådan, at når man klikker på billedet, lukker vinduet!. Og så skal den der dropdown menu heller ikke være der, tilbage linket skal væk og så skal vinduet være centreret.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strPhysicalPath) Set objFolder = objFile.ParentFolder Set objFolderContents = objFolder.Files For each Folder in objFolder.SubFolders If Left(Folder.Name,1)<>"_" Then Response.write "<option " If ShowSub=Folder.Name Then Response.Write "selected " End if Response.Write"value='" & CurFile & "?ShowSub=" Response.Write(Replace(Folder.Name, " ", "%20")) response.write "'>" Response.Write(Folder.Name & "</option>") If ShowSub <= " " Then ShowSub = Folder.Name End if End if Next Set objFSO = Nothing %> </select></h3> </form> </td> </tr> </table>
bordercolor="#000000" width="100%" id="AutoNumber1"> <tr> <% 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
'Get the number of pictures in the subdirectory intTotPics = 0 For Each objFileItem in objFolderContents If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN intTotPics = intTotPics + 1 End if Next
'Get the total number of pages in the subdirectory If (intTotPics/intPicsPerPage) = (int(intTotPics/intPicsPerPage)) Then intTotPages = int(intTotPics/intPicsPerPage) Else intTotPages = int(intTotPics/intPicsPerPage)+1 End If Redim strPicArray(2,intTotPics)
'Store picture file names in an array x = 0 For Each objFileItem in objFolderContents If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN strPicArray(0,x) = objFileItem.Name strPicArray(1,x) = Cstr(int(x/intPicsPerPage)+1) x = x + 1 End if Next
'Determine if there are multiple pages and if so, display page numbers. If intTotPages > 1 Then Response.Write "<td colspan='" & intPicsPerRow & "' align='center'><font face='Verdana,Arial'
size='1'>Side: " For x = 1 to intTotPages If x = intPage Then Response.Write "</font><font face='Arial' size='2'>" & x & "</font><font face='Arial'
size='1'> " Else Response.Write "<a href='PhotoAlbum.asp?Page=" & x & "&ShowSub=" & ShowSub & "'>" & x &
"</a> " End If Next Response.Write "</font></td>" Response.Write "</tr><tr><td> </td></tr><tr>" End If
For x = 0 to UBound(strPicArray,2)-1 If CInt(strPicArray(1,x)) = intPage Then ShowPic = Replace(strPicArray(0,x), " ", "%20") Response.write "<td align='center' width='25%'><a href=""java script:openGalleryWindow('" &
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strPhysicalPath) Set objFolder = objFile.ParentFolder Set objFolderContents = objFolder.Files For each Folder in objFolder.SubFolders If Left(Folder.Name,1)<>"_" Then Response.write "<option " If ShowSub=Folder.Name Then Response.Write "selected " End if Response.Write"value='" & CurFile & "?ShowSub=" Response.Write(Replace(Folder.Name, " ", "%20")) response.write "'>" Response.Write(Folder.Name & "</option>") If ShowSub <= " " Then ShowSub = Folder.Name End if End if Next Set objFSO = Nothing %> </select></h3> </form> </td> </tr> </table> <hr>
"</b>") Response.write "</a></td>" PictureNo = PictureNo + 1 If PictureNo=4 Then Response.write "</tr><tr>" PictureNo = 0 End if End if Next Set objFSO = Nothing End if %> </tr> </table> <% End if %> </center> </html>
if ShowSub <= " " then Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strPhysicalPath) Set objFolder = objFile.ParentFolder Set objFolderContents = objFolder.Files For each Folder in objFolder.SubFolders ShowSub = Folder.Name Exit For Next Set objFSO = Nothing end if %>
<% If ShowPic > " " then ShowPic = Replace(ShowPic, " ", "%20") Response.Write "<a href='java script:history.go(-1)'><img src='" & ShowPic & "'><BR><BR><font face=""verdana"" size=""1""><b>Gå tilbage</b></a>" Else %> <table border="0" cellpadding="0" cellspacing="5" style="border-collapse: collapse" bordercolor="#000000" width="100%" id="AutoNumber2"> <tr> <% 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
'Get the number of pictures in the subdirectory intTotPics = 0 For Each objFileItem in objFolderContents If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN intTotPics = intTotPics + 1 End if Next
'Get the total number of pages in the subdirectory If (intTotPics/intPicsPerPage) = (int(intTotPics/intPicsPerPage)) Then intTotPages = int(intTotPics/intPicsPerPage) Else intTotPages = int(intTotPics/intPicsPerPage)+1 End If Redim strPicArray(2,intTotPics)
'Store picture file names in an array x = 0 For Each objFileItem in objFolderContents If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN strPicArray(0,x) = objFileItem.Name strPicArray(1,x) = Cstr(int(x/intPicsPerPage)+1) x = x + 1 End if Next
PictureNo = PictureNo + 1 If PictureNo=intPicsPerRow Then Response.write "</tr><tr>" PictureNo = 0 End if End If Next
'Determine if there are multiple pages and if so, display page numbers. If intTotPages > 1 Then Response.Write "<td colspan='" & intPicsPerRow & "' align='center'><font face='Verdana,Arial' size='1'>Side: " For x = 1 to intTotPages If x = intPage Then Response.Write "</font><font face='Arial' size='2'>" & x & "</font><font face='Arial' size='1'> " Else Response.Write "<a href='PhotoAlbum.asp?Page=" & x & "&ShowSub=" & ShowSub & "'>" & x & "</a> " End If Next Response.Write "</font></td>" Response.Write "</tr><tr><td> </td></tr><tr>" End If
Set objFSO = Nothing End if %> </tr> </table> <% End if %>
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strPhysicalPath) Set objFolder = objFile.ParentFolder Set objFolderContents = objFolder.Files For each Folder in objFolder.SubFolders If Left(Folder.Name,1)<>"_" Then Response.write "<option " If ShowSub=Folder.Name Then Response.Write "selected " End if Response.Write"value='" & CurFile & "?ShowSub=" Response.Write(Replace(Folder.Name, " ", "%20")) response.write "'>" Response.Write(Folder.Name & "</option>") ' If ShowSub <= " " Then ' ShowSub = Folder.Name ' End if End if Next Set objFSO = Nothing %> </select></h3> </form> </td> </tr> </table>
Perfekt!, men jeg har lige et lille spørgsmål til!. Kan det lade sig gøre, at få popup vinduet til at tilpasse sig billedet, så der ikke er det store tomrum omkring det.....
for pt. passer det jo ikke til alle billeder. Hvis der nu kommer et lille billed, er der jo alt for meget spildplads. Og hvis der kommer et stort billed, kan man ikke se det hele...
Enten skal man lave det så ASP koden tjekke på størrelsen og så bruger man det til at vise billet.. Eller så skal man lave et script som kan tilpasse vinduet efter billet et loaded.
Ja det gør den også det må være noget med at man ændre på yder rammen og ikke det inden for....
Prøv at bruge denne ShowPicture.asp fil...:
<% ' ASP Picture Album
Dim CurFile, ShowSub, ShowPic, PictureNo Dim strPathInfo, strPhysicalPath
CurFile = "ShowPicture.asp" %>
<html><head> <title></title> <script language="JavaScript"> <!-- function jumppage(sel) { var i = sel.selectedIndex self.location.href = sel.options[i].value }
function afterLoad(iWidth,iHeight) { iWidth += 25; iHeight += 50;
if (document.all) var xMax = screen.width, yMax = screen.height; else if (document.layers) var xMax = window.outerWidth, yMax = window.outerHeight; else var xMax = 800, yMax=600;
Jeg er ikke en haj til Javascritp/HTMl men fandt en side som skrev man skal havde <div style="position:absolute; left:0px; top:0px"> ind omkring billedet for det ikke står ½-1 cm inden på siden så her er en ny udgave af filen
ShowPicture.asp :
<% ' ASP Picture Album
Dim CurFile, ShowSub, ShowPic, PictureNo Dim strPathInfo, strPhysicalPath
CurFile = "ShowPicture.asp" %>
<html><head> <script language="JavaScript"> <!-- function jumppage(sel) { var i = sel.selectedIndex self.location.href = sel.options[i].value }
function afterLoad(iWidth,iHeight) {
if (document.all) var xMax = screen.width, yMax = screen.height; else if (document.layers) var xMax = window.outerWidth, yMax = window.outerHeight; else var xMax = 800, yMax=600;
Nej, jeg tror sku det virker nu.... Tak endnu engang.......
Synes godt om
Ny brugerNybegynder
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.