Kindly Check Below Code for your Referances.
.aspx Page Design
<form id="form1" runat="server">
<div>
<asp:DataList ID="dlList" runat="server" RepeatLayout="Table" RepeatColumns="1"
ondeletecommand="dlList_DeleteCommand" >
<ItemTemplate>
<table cellpadding="1" cellspacing="0" style="width: 500px; height: 100px; border: dashed 2px green;
background-color: #C2D69B" >
<tr>
<td >
<%#Eval("ContactName")%>
</td>
<td>
<%#Eval("City")%>
</td>
<td>
<%#Eval("Country")%>
</td>
<td>
<asp:Button ID="btndelete" Text="Delete" CommandName="Delete" runat="server"></asp:Button>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</div>
</form>
.cs Code
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindDataList();
this.Bind();
}
}
private void BindDataList()
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand("SELECT ContactName,City,Country FROM Customers "))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
ViewState["dt"] = dt;
}
}
}
}
}
protected void Bind()
{
dlList.DataSource = ViewState["dt"] as DataTable;
dlList.DataBind();
}
protected void dlList_DeleteCommand(object source, DataListCommandEventArgs e)
{
int index = Convert.ToInt32(e.Item.ItemIndex);
DataTable dt = ViewState["dt"] as DataTable;
dt.Rows[index].Delete();
dt.AcceptChanges();
ViewState["dt"] = dt;
dlList.EditItemIndex = -1;
Bind();
}