Without using DataTable.
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Text" HeaderText="Image Name" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ImageUrl='<%# Eval("Value") %>' runat="server" Width="100" Height="100" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
using System.IO;
C#
protected void Page_Load(object sender, EventArgs e)
{
string localPath = "C:\\Users\\Public\\Pictures\\Sample Pictures\\";
string[] filePaths = Directory.GetFiles(localPath);
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
string contenttype = "image/" + Path.GetExtension(fileName).Replace(".", "");
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
string base64String;
base64String = System.Convert.ToBase64String(bytes, 0, bytes.Length);
files.Add(new ListItem(fileName, "data:" + contenttype + ";base64," + base64String));
}
GridView1.DataSource = files;
GridView1.DataBind();
}
Screenshot
