Photo gallery user control I am trying to create something that is very reusable here so that I can use it in other sites for other pages etc.

This code is for a simple photo gallery,  

I took the code from here, but I changed it a bit and would like to add more functionality to it eventually, though.

PhotoGallery.ascx

&lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="PhotoGallery.ascx.cs" Inherits="PhotoGallery" %&gt;
&lt;style&gt;
    #ImageGallery {
        overflow:auto; 
        height:500px; 
        width:330px; 
        display:block;
    }
    #GalleryContainer {
        width:300px;
        align-content:center;
        border-right:3px solid #EEEEEE;
    }
    .thumbnails {
        cursor:pointer;
        width:100px;
    }
&lt;/style&gt;
&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
    $(document).ready(function () {
        $('#ImageGallery img').click(function () {
            var bigImagePath = $(this).attr('src');
            $('#bigImage').attr('src', bigImagePath);
        });
    });
&lt;/script&gt;
&lt;h3&gt;Before and After Pictures&lt;/h3&gt;
&lt;table&gt;
    &lt;tr&gt;
        &lt;td id="GalleryContainer"&gt;
            &lt;div id="ImageGallery"&gt;
                &lt;asp:Repeater ID="Repeater1" runat="server"&gt;
                    &lt;ItemTemplate&gt;
                        &lt;img class="thumbnails" src='&lt;%#Eval("ImageUrl") %&gt;' alt='&lt;%#Eval("ImageUrl") %&gt;' /&gt;
                    &lt;/ItemTemplate&gt;
                &lt;/asp:Repeater&gt;
            &lt;/div&gt;
        &lt;/td&gt;
        &lt;td&gt;
            &lt;img id="bigImage" alt="" /&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;


PhotoGallery.ascx.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class PhotoGallery : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PopulateImages();
        }
    }

    public string FolderPath {get;set;}

    private void PopulateImages()
    {
        List&lt;Image&gt; myImages = new List&lt;Image&gt;();
        DirectoryInfo DI = new DirectoryInfo(Server.MapPath(FolderPath));
        foreach (var file in DI.GetFiles())
        {
            myImages.Add(new Image { ImageUrl = FolderPath + file.Name });
        }
        Repeater1.DataSource = myImages;
        Repeater1.DataBind();
    }
}
the variable holding the DirectoryInfo object should be named using lower case.  
you should always use Sytem.IO.Path.Combine() to combine a folder with a filename.  
you could use DirectoryInfo.EnumerateFiles combined with the Select() and assign the returned IEnumerable to the DataSource property of the Repeater control.
you should add spacing to the property FolderPath. Instead of  

public string FolderPath {get;set;}  


you should use  

public string FolderPath { get; set; }  

Repeater1 is an ugly name which isn't decsriptive either. Change it to something more descriptive.