Cette source permet de generer un album photo automatiquement, le fichier aspx se nomme miniature.aspx dans ce dossier il doit y avoir un dossier phototeque avec toutes les photos qui doivent etre à un format de 600*450. Dans ce dossier il devra y avoir un dossier miniature avec les mêmes photos avec le même nom, la taille doit etre de 140*105
[Racine] - miniature.aspx
|---[phototheque] (image grande)
|---[miniature] (image petite)
il y'a plusieurs page suivant les photos pour differencier les photos il suffit de mettre un nombre devant le nom par exemple 1exemple.jpg, les photos doivent etre en jpg
pour rajouter une photo il suffit de rajouter la photo dans les dossier.
Source / Exemple :
<%@ Page Language="VB" Debug="true" %>
<%@import Namespace="System.xml"%>
<%@import Namespace="System.io"%>
<script language="VB" runat="server">
public imgdepart as string
'========================================================
' fonction pour savoir le nom de la page sans l'extension
'========================================================
public function fnom_page(fichier as string)
dim taille_tableau, spage, sval, sval2, fichier2, extension as string
dim tabpage, val_extension as array
tabPage = split(fichier,"/") ' on regarde dans quel page on est
val_extension = split(fichier,".") ' on decoupe avec tous les points
for each sval2 in val_extension 'on passe tous les membre jusqu'au dernier
extension = sval2
next
for each sval in tabpage 'on remet tabpage dans un string
fichier2 &= sval
next
if fichier2 = fichier then 'on à regardé si ca a fait qqchose avec le slash
tabPage = split(fichier,"\") 'on refait avec l'antislash
end if
taille_tableau = Ubound(tabpage)
spage = tabpage(taille_tableau)
spage = replace(spage, "." + extension,"") ' replace(string, valeure a remplacer, valeur de remplacement
spage = StrConv(spage, VbStrConv.LowerCase) ' StrConv fonction de formatage; VbStrConv.LowerCase ==> tt en minuscule
fnom_page = spage
end function
Sub Page_Load(obj As object, e As eventargs)
if not page.ispostback then ' pour savoir si la page est valide
dim marray as new arraylist() ' si oui je remplis un arraylist
dim i as integer ' avec des numeros qui serviront a peupler le datareapeter
' pour faire des liens
for i = 1 to 9 ' et voir les differentes images suivant le numero
marray.add(i.tostring())
next i
marray.add("toutes")
texte.datasource = marray
texte.databind()
end if
dim id as string = request.QueryString("id") ' variable pour savoir quelles images afficher
select case id
case ""
notice.text = "<hr size=1px><b>"+id+"</b><hr size=1px>"
imgdepart = "1" ' on donne le premier numero de l'image
affichage_miniature ' permet d'afficher les miniatures
case "toutes"
notice.text = "<hr size=1px><b>"+id+"</b><hr size=1px>"
imgdepart = "" ' on donne le premier numero de l'image
affichage_miniature ' permet d'afficher les miniatures
case else
notice.text = "<hr size=1px><b>"+id+"</b><hr size=1px>"
imgdepart = id.tostring ' on donne le premier numero de l'image
affichage_miniature ' permet d'afficher les miniatures
end select
end sub
'========================================================
' sub permettant d'afficher les miniatures
'========================================================
sub affichage_miniature()
if not page.IsPostBack then ' Seulement si la page est valide
dim mArray as array ' array de toutes les images commencant par imgdepart
dim mArray2 as new arraylist() ' array avec 4 images
dim counter as integer = 0 ' pour savoir a combien d'image on est
dim svaleur as string ' string qui sert juste pour le for each
mArray = directory.getfiles(server.MapPath("phototeque/miniature/"), imgdepart + "*.jpg")
for each svaleur in mArray ' on commence la boucle pour tt array
mArray2.Add(fnom_page(svaleur)) ' on remplit l'array2 juste avec le nom de l'image sans l'extesion
next
list1.datasource = mArray2
list1.databind()
end if
end sub
'========================================================
' recupere le numero de l'image et l'envoie dans la function agrandir
'========================================================
sub img_click(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs)
dim photo as string = sender.commandargument
agrandissement.imageurl = "phototeque/" + photo.tostring() + ".jpg"
agrandissement.borderwidth = unit.pixel(1)
agrandissement.visible = "true"
agrandissement.height = unit.pixel(450)
agrandissement.width = unit.pixel(600)
agrandissement.alternatetext = "Cliquer ici pour reduire la photo " + photo.tostring()
end sub
'========================================================
' sub pour reduire la photo et pour cacher l'image et tout ca qui traine
'=
sub agrandissement_click(sender As Object, e As System.Web.UI.ImageClickEventArgs)
agrandissement.imageurl = ""
agrandissement.visible = "false"
agrandissement.height = unit.pixel(0)
end sub
</script>
<html>
<head>
<title>Miniatures</title>
</head>
<body>
<form runat="server">
<tr>
<td height="102" valign="top"><table width="100%">
<tr>
<td height="10"></td>
</tr>
<tr>
<td height="20" align="center"><asp:repeater id=texte runat="server" >
<itemtemplate>
<asp:hyperlink
id=hk text=<%# container.dataitem %>
NavigateUrl=<%# "miniature.aspx?id=" + container.dataitem %>
runat="server"
/>
</itemtemplate>
<separatortemplate>|</separatortemplate>
</asp:repeater>
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td align="center">
<asp:label id="notice" runat="server"/>
</td>
</tr>
<tr>
<td height="5"></td>
</tr>
<tr>
<td align="center">
<asp:imagebutton
imagealign="middle"
height="0"
id="agrandissement"
runat="server"
Visible="false"
OnClick="agrandissement_click"
/></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<asp:datalist ID="list1"
RepeatColumns="4"
RepeatDirection="Horizontal"
ItemStyle-VerticalAlign="middle"
ItemStyle-HorizontalAlign="center"
runat="server"
Width="100%"
CellSpacing="4"
>
<itemtemplate>
<asp:imagebutton id="photo"
ImageAlign="Middle"
AlternateText='<%# "Photo N° "+ Container.dataitem%>'
ImageUrl='<%# "phototeque/miniature/"+ Container.dataitem +".jpg"%>'
Width="140" Height="105"
commandargument='<%# Container.dataitem %>'
OnCommand="img_click"
runat="server"
/>
</itemtemplate>
</asp:datalist>
<table width="100%">
<tr>
<td height="20"></td>
</tr>
</table></td>
</tr>
</form>
</body>
</html>
Conclusion :
A ma connaissance il n'y a pas de bug si tout est bien configuré, pas de gestion d'erreur donc il risque d'y avoir pas mal de petits problèmes pour la configuration
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.