Hi,
Here I have created sample that will help you out.
HTML
<div>
<asp:GridView runat="server" ID="gvImage" AutoGenerateColumns="false" OnRowDataBound="RowDataBound">
<Columns>
<asp:BoundField DataField="ID" HeaderText="Id" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField HeaderText="Images">
<ItemTemplate>
<asp:Label ID="lblImages" Text='<%#Eval("Images") %>' runat="server" Style="display: none" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Images",typeof(string)) });
dt.Rows.Add(1, "New Images", "image1.jpg,image2.jpg,image3.jpg");
gvImage.DataSource = dt;
gvImage.DataBind();
}
}
protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string images = ((Label)e.Row.FindControl("lblImages")).Text;
HtmlTable table = new HtmlTable();
HtmlTableRow tr = new HtmlTableRow();
foreach (string image in images.Split(','))
{
HtmlTableCell td = new HtmlTableCell();
HtmlImage img = new HtmlImage();
img.Width = 100;
img.Height = 100;
img.Src = "~/Images/" + image;
td.Controls.Add(img);
tr.Cells.Add(td);
}
table.Rows.Add(tr);
e.Row.Cells[2].Controls.Add(table);
}
}
Screenshot