Hi rakeshkuma,
Check this example. Now please take its reference and correct your code.
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="#">
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkDel" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" Visible="false" HeaderText="Id"></asp:BoundField>
<asp:BoundField DataField="Name" HeaderText="Name"></asp:BoundField>
<asp:BoundField DataField="Country" HeaderText="Country"></asp:BoundField>
</Columns>
</asp:GridView>
<asp:Button ID="btnDeleteRecord" runat="server" OnClick="btnDeleteRecord_Click" Text="Delete" />
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] {
new DataColumn("Id"),
new DataColumn("Name"),
new DataColumn("Country") });
dt.Rows.Add(1, "John Hammond", "USA");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "UK");
ViewState["Data"] = dt;
this.BindGrid();
}
}
protected void btnDeleteRecord_Click(object sender, EventArgs e)
{
DataTable dt = ViewState["Data"] as DataTable;
for (int i = GridView1.Rows.Count - 1; i >= 0; i--)
{
GridViewRow row = GridView1.Rows[i];
CheckBox chkDelete = row.FindControl("chkDel") as CheckBox;
if (chkDelete.Checked)
{
dt.Rows[i].Delete();
}
}
ViewState["Data"] = dt;
this.BindGrid();
}
private void BindGrid()
{
DataTable dt = ViewState["Data"] as DataTable;
GridView1.DataSource = dt;
GridView1.DataBind();
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(2) {
New DataColumn("Id"),
New DataColumn("Name"),
New DataColumn("Country")})
dt.Rows.Add(1, "John Hammond", "USA")
dt.Rows.Add(2, "Mudassar Khan", "India")
dt.Rows.Add(3, "Suzanne Mathews", "France")
dt.Rows.Add(4, "Robert Schidner", "UK")
ViewState("Data") = dt
Me.BindGrid()
End If
End Sub
Protected Sub btnDeleteRecord_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim dt As DataTable = TryCast(ViewState("Data"), DataTable)
For i As Integer = GridView1.Rows.Count - 1 To 0 Step -1
Dim row As GridViewRow = GridView1.Rows(i)
Dim chkDelete As CheckBox = TryCast(row.FindControl("chkDel"), CheckBox)
If chkDelete.Checked Then
dt.Rows(i).Delete()
End If
Next
ViewState("Data") = dt
Me.BindGrid()
End Sub
Private Sub BindGrid()
Dim dt As DataTable = TryCast(ViewState("Data"), DataTable)
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
Screenshot
![](https://i.imgur.com/VUy4DqR.gif)