Para crear una galeria de fotos el primer paso que se debe hacer es crear un nuevo proyecto con visual studio 2005 que sea un sitio web.
Despues de haber creado el sitio web en el WebForm (Default.aspx) que crea por default Visual Studio
en el modo de codigo:
añadir el siguiente codigo entre los tags <div> </div>
<table>
<tr>
<td>
Selecciona la galería que deseas ver:<br />
<asp:DropDownList ID=”cboGallery” runat=”server” AutoPostBack=”True”OnSelectedIndexChanged=”cboGallery_SelectedIndexChanged”>
</asp:DropDownList>
<asp:DataList ID=”dlsGallery” runat=”server” RepeatColumns=”5″>
<ItemTemplate>
<table>
<tr>
<td style=”border-style:solid; border-width:1px; width:150px; height:150px; text- align:center;”>
<a href=”Images/Gallery/<%#Eval(“GalleryID”)%>/<%#Eval(“FileName”)%>” target=”_blank”>
<asp:Image ID=”imgGallery” runat=”server” Height=”50px” Width=”50px”
ImageUrl=
‘<%#fnFilePath(DataBinder.Eval(Container.DataItem,”GalleryID”).ToString(),
DataBinder.Eval(Container.DataItem,”FileName”).ToString()) %>’ />
</a>
<p style=”text-align:center;”>
<a
href=”Images/Gallery/<%#Eval(“GalleryID”)%>/<%#Eval(“FileName”)%>” target=”_blank”>
<asp:Label ID=”lblFileDesc”
runat=”server”
Text=’<%#Eval(“FileDescription”)%>’></asp:Label>
</a>
</p>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList><br />
<asp:Label ID=”lblMessage” runat=”server” Text=”"></asp:Label>
</td>
</tr>
</table>
En modo diseño quedara algo parecido:
Importar los Siguientes espacios de nombres
using System.IO;
using System.Data;
Despues añadir el siguiente codigo dentro del archivo Default.aspx.cs:
//Dentro de la carpeta Gallery añadir carpetas con las fotografias que se deseen mostrar
string varGalleryFolder = “C:\\inetpub\\wwwroot\\images\\Gallery”;
protected void GetFolders(string prmFolder)
{
try
{
if (Directory.Exists(prmFolder))
{
string[] arrFolders;
arrFolders = Directory.GetDirectories(prmFolder);
foreach (string dir in arrFolders)
{
ListItem lst = new ListItem(dir.Substring(prmFolder.Length + 1),
dir.Substring(prmFolder.Length + 1));
cboGallery.Items.Add(lst);
}
}
else
{
lblMessage.Text =
“No existe el directorio de imágenes”;
}
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
}
protected void GetFiles(string prmFolder)
{
try
{
string[] arrFiles;
arrFiles = Directory.GetFiles(prmFolder, “*.jpg”);
DataSet dsGallery = new DataSet(“dsGallery”);
DataTable taFile;
DataRow rwFile;
//DataColumn colFile;
taFile = dsGallery.Tables.Add(“Files”);
taFile.Columns.Add(“GalleryID”, varGalleryFolder.GetType());
taFile.Columns.Add(“FileName”, varGalleryFolder.GetType());
taFile.Columns.Add(“FileDescription”, varGalleryFolder.GetType());
foreach (string file in arrFiles)
{
//aqui llenamos el Dataset
rwFile = taFile.NewRow();
rwFile["GalleryID"] = prmFolder.Substring(varGalleryFolder.Length + 1); ;
rwFile["FileName"] = file.Substring(prmFolder.Length + 1);
rwFile["FileDescription"] = file.Substring(prmFolder.Length + 1);
taFile.Rows.Add(rwFile);
}
dlsGallery.DataSource = dsGallery.Tables["Files"];
if (dsGallery.Tables["Files"].Rows.Count == 0)
{
lblMessage.Text = “No se encontraron imágenes”;
}
else
{
lblMessage.Text = “Se encontraron “ +
dsGallery.Tables["Files"].Rows.Count.ToString() +” imágenes”;
}
dlsGallery.DataBind();
dsGallery.Dispose();
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
}
protected string fnFilePath(string prmPath, string prmFileName)
{
return (“imagenes/Gallery/” + prmPath + “/” + prmFileName);
}
//Evento Load del WebForm
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
GetFolders(varGalleryFolder);
GetFiles(varGalleryFolder + “\\” + cboGallery.SelectedValue.ToString());
}
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
}
//Evento SelectedIndexChanged del DropDownList
protected void cboGallery_SelectedIndexChanged(object sender, EventArgs e)
{
GetFiles(varGalleryFolder + “\\” + cboGallery.SelectedValue.ToString());
}


Agosto 8, 2008 a las 1:19 pm |
hola…me parece bastante util tu codigo
como lo aplicaria si guardo las rutas de mis imagenes en una base de datos?
saludos heriberto
Septiembre 24, 2008 a las 7:49 pm |
Buenas, estuve utilizando el codigo que posteaste, me andubieron bien los links, lo que no se me ven son las imagenes en miniatura.
Saludos
Diciembre 1, 2008 a las 8:02 pm |
Excelente material muchas gracias eso estaba buscando, algo muy sencillo.
Gracias