How to Bind or Display Images from Folder to Datalist Using ASP.NET

HTML code
  1. <div>  
  2.    <div class="clear hideSkiplink">  
  3.       <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">  
  4.          <Items>  
  5.             <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>  
  6.             <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>  
  7.          </Items>  
  8.       </asp:Menu>  
  9.    </div>  
  10. </div>  
  11. <div>  
  12.    <asp:FileUpload ID="fileupload1" runat="server" />  
  13.    <asp:Button ID="btnsave" runat="server" Text="Upload" onclick="btnsave_Click" />  
  14. </div>  
  15. <div>  
  16.    <asp:DataList ID="dtlist" runat="server" RepeatColumns="4" CellPadding="5">  
  17.       <ItemTemplate>  
  18.          <asp:Image Width="100" ID="Image1" ImageUrl='<%# Bind("Name", "~/Images/{0}") %>' runat="server" />  
  19.          <br />  
  20.          <asp:HyperLink ID="HyperLink1" Text='<%# Bind("Name") %>' NavigateUrl='<%# Bind("Name", "~/Images/{0}") %>' runat="server"/>  
  21.       </ItemTemplate>  
  22.       <ItemStyle BorderColor="Brown" BorderStyle="dotted" BorderWidth="3px" HorizontalAlign="Center"  
  23.          VerticalAlign="Bottom" />  
  24.    </asp:DataList>  
  25. </div>  
C# code
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.IO;  
  8. using System.Collections;  
  9. namespace DemoGrid {  
  10.     public partial class index: System.Web.UI.Page 
  11.     {  
  12.         protected void Page_Load(object sender, EventArgs e) 
  13.         {  
  14.             if (!IsPostBack) 
  15.             {  
  16.                 BindDataList();  
  17.             }  
  18.         }  
  19.         protected void BindDataList() 
  20.         {  
  21.             DirectoryInfo dir = new DirectoryInfo(MapPath("Images"));  
  22.             FileInfo[] files = dir.GetFiles();  
  23.             ArrayList listItems = new ArrayList();  
  24.             foreach(FileInfo info in files) 
  25.             {  
  26.                 listItems.Add(info);  
  27.             }  
  28.             dtlist.DataSource = listItems;  
  29.             dtlist.DataBind();  
  30.         }  
  31.         protected void btnsave_Click(object sender, EventArgs e) 
  32.         {  
  33.             string filename = Path.GetFileName(fileupload1.PostedFile.FileName);  
  34.             fileupload1.SaveAs(Server.MapPath("Images/" + filename));  
  35.             BindDataList();  
  36.         }  
  37.     }  
  38. }