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());
}

