Hi Monima,
Check this example. Now please take its reference and correct your code.
HTML
<asp:GridView runat="server" ID="gvFiles" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Photo">
<ItemTemplate>
<asp:CheckBox ID="cbImage" runat="server" />
<asp:Image ID="imgImage" AlternateText='<%# Eval("Value") %>' ImageUrl='<%# Eval("Value") %>'
runat="server" Height="75" Width="100" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button Text="Delete" runat="server" OnClick="Delete" />
Namespace
C#
using System.IO;
VB.Net
Imports System.IO
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
protected void Delete(object sender, EventArgs e)
{
foreach (GridViewRow row in gvFiles.Rows)
{
if ((row.FindControl("cbImage") as CheckBox).Checked)
{
string imagePath = (row.FindControl("imgImage") as Image).AlternateText;
if (File.Exists(Server.MapPath(imagePath)))
{
File.Delete(Server.MapPath(imagePath));
}
}
}
BindGrid();
}
private void BindGrid()
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Images/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
files.Add(new ListItem(fileName, "~/Images/" + fileName));
}
gvFiles.DataSource = files;
gvFiles.DataBind();
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
BindGrid()
End If
End Sub
Protected Sub Delete(ByVal sender As Object, ByVal e As EventArgs)
For Each row As GridViewRow In gvFiles.Rows
If (TryCast(row.FindControl("cbImage"), CheckBox)).Checked Then
Dim imagePath As String = (TryCast(row.FindControl("imgImage"), Image)).AlternateText
If File.Exists(Server.MapPath(imagePath)) Then
File.Delete(Server.MapPath(imagePath))
End If
End If
Next
BindGrid()
End Sub
Private Sub BindGrid()
Dim filePaths As String() = Directory.GetFiles(Server.MapPath("~/Images/"))
Dim files As List(Of ListItem) = New List(Of ListItem)()
For Each filePath As String In filePaths
Dim fileName As String = Path.GetFileName(filePath)
files.Add(New ListItem(fileName, "~/Images/" & fileName))
Next
gvFiles.DataSource = files
gvFiles.DataBind()
End Sub
Screenshot
