Hi salini,
Refer the below sample.
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" />
<asp:BoundField DataField="FileName" HeaderText="Image Name" />
<asp:BoundField DataField="FileName1" HeaderText="Image Name 1" />
<asp:TemplateField HeaderText="Image Image 1">
<ItemTemplate>
<asp:ImageButton ID="btnImage" runat="server" ImageUrl='<%# Eval("FilePath") %>'
OnClick="DownloadImage" />
<asp:ImageButton ID="btnImage1" runat="server" ImageUrl='<%# Eval("FilePath1") %>'
OnClick="DownloadImage" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
private void BindGrid()
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString);
SqlCommand cmd = new SqlCommand("SELECT Id,FileName,FileName1,FilePath,FilePath1 FROM tblImages ORDER BY Id", con);
SqlDataAdapter sda = new SqlDataAdapter();
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
con.Close();
sda.Dispose();
con.Dispose();
}
protected void DownloadImage(object sender, EventArgs e)
{
string filePath = Server.MapPath((sender as ImageButton).ImageUrl);
if (File.Exists(filePath))
{
string fileName = Path.GetFileName(filePath);
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
Response.Charset = "";
Response.ContentType = "." + fileName.Split('.')[fileName.Split('.').Length - 1];
Response.WriteFile(filePath);
Response.Flush();
Response.End();
}
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
BindGrid()
End If
End Sub
Private Sub BindGrid()
Dim dt As New DataTable()
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings(1).ConnectionString)
Dim cmd As New SqlCommand("SELECT Id,FileName,FileName1,FilePath,FilePath1 FROM tblImages ORDER BY Id", con)
Dim sda As New SqlDataAdapter()
con.Open()
sda.SelectCommand = cmd
sda.Fill(dt)
GridView1.DataSource = dt
GridView1.DataBind()
con.Close()
sda.Dispose()
con.Dispose()
End Sub
Protected Sub DownloadImage(sender As Object, e As EventArgs)
Dim filePath As String = Server.MapPath(TryCast(sender, ImageButton).ImageUrl)
If File.Exists(filePath) Then
Dim fileName As String = Path.GetFileName(filePath)
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", Convert.ToString("attachment;filename=") & fileName)
Response.Charset = ""
Response.ContentType = "." + fileName.Split("."C)(fileName.Split("."C).Length - 1)
Response.WriteFile(filePath)
Response.Flush()
Response.[End]()
End If
End Sub
SQL Data
Id |
FileName |
FileName1 |
FilePath |
FilePath1 |
2 |
Chrysanthemum |
Jellyfish |
Images/Chrysanthemum.jpg |
Images/Jellyfish.jpg |
3 |
Desert |
Hydrangeas |
Images/Desert.jpg |
Images/Hydrangeas.jpg |
5 |
Hydrangeas |
Chrysanthemum |
Images/Hydrangeas.jpg |
Images/Chrysanthemum.jpg |
6 |
Jellyfish |
Desert |
Images/Jellyfish.jpg |
Images/Desert.jpg |
Output
![](https://i.imgur.com/OnJhIAv.gif)