Una semplice galleria fotografica con ASP.NET

di Umberto Sarracino, in UserScript, ASP.NET, System.IO,

Questo script consente di creare molto rapidamente da una directory contenente immagini in formato *.jpg una galleria di immagini da personalizzare come meglio si vuole.
Nello script si fa uso della classe 'DirectoryInfo' e 'FileInfo' per estrarre le informazioni e le immagini dalla cartella indicata.
Lo script analizza i files contenuti in una directory con estenzione *.jpg e li restituisce sul web con una paginazione di 6 immagini per pagina.

Le variabili eventualmente da cambiare sono:
- la directory delle immagini Server.MapPath("\Galleria\Gallery\img")
- l'estensione delle immagini ("*.jpg")

<SCRIPT RUNAT="SERVER">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
  CaricaLnk(CaricaImg(Request.QueryString("ID")))
End Sub

Private Function CaricaLnk(ByVal intI As Integer)
  ' Questa funzione crea una paginazione delle immagini
  Dim a As System.Web.UI.WebControls.HyperLink
  Dim resto As Integer
  Dim j As Integer

  If (intI Mod 6) > 0 Then
    resto = intI / 6
  Else
    resto = (intI / 6) - 1
  End If

  For j = 0 To resto
    a = New System.Web.UI.WebControls.HyperLink
    If j <> Request.QueryString("ID") Then
     a.NavigateUrl = "?ID=" & j
    End If
    a.Text = " [" & j & "] "
    PH.Controls.Add(a)
  Next
End Function

Private Function CaricaImg(ByVal Pagina As Integer) As Integer
  ' Legge il contenuto della directory
  Dim sr As IO.DirectoryInfo = New DirectoryInfo(Server.MapPath("\Galleria\Gallery\img"))
  Dim fi() As IO.FileInfo
  Dim i As Integer
  ' Carica un array di info sui files con estensione *.jpg della directory caricata
  fi = sr.GetFiles("*.jpg")
  Dim j As Integer = fi.GetLength(0)
  For i = 1 To 6
    If ((Pagina * 6) + i - 1) <= j - 1 Then
    ' Associa l'immagine trovata al controllo Image e il controllo Hyperlink all'indirizzo dell'immagine
    Dim img As System.Web.UI.WebControls.Image
    img = DirectCast(FindControl("img" & i), System.Web.UI.WebControls.Image)
    img.ImageUrl = fi((Pagina * 6) + i - 1).FullName
    Dim a As System.Web.UI.WebControls.HyperLink
    a = DirectCast(FindControl("a" & i), System.Web.UI.WebControls.HyperLink)
    a.NavigateUrl = fi((Pagina * 6) + i - 1).FullName
  Else
    Dim img As System.Web.UI.WebControls.Image
    img = DirectCast(FindControl("img" & i), System.Web.UI.WebControls.Image)
    img.Visible = False
  End If
  Next
  CaricaImg = j
End Function
</SCRIPT>
 <form id="Form1" method="post" runat="server">
   <asp:HyperLink runat=server id=a1>
   <asp:Image id=img1 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink>
   <asp:HyperLink runat=server id="a6">
   <asp:Image id=img6 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink>
   <asp:HyperLink runat=server id="a5">
   <asp:Image id=img5 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink>
   <asp:HyperLink runat=server id="a4">
   <asp:Image id=img4 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink>
   <asp:HyperLink runat=server id="a3">
   <asp:Image id=img3 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink>
   <asp:HyperLink runat=server id="a2">
   <asp:Image id=img2 runat="server" Width="195px" Height="134px"></asp:Image>
   </asp:HyperLink> <br>
   <asp:PlaceHolder Runat=server ID=PH></asp:PlaceHolder>
</form>

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi