Edit Update Delete record in Repeater Control

The article is about edit, update, and delete records in a simple way inside repeater control.

The HTML source page with repeater control should look like the following

<asp:Repeater ID="cpRepeater" runat="server"
    onitemcommand="cpRepeater_ItemCommand"
    onitemdatabound="cpRepeater_ItemDataBound">
<HeaderTemplate>
<table width="500px" border="1px">
<tr style="background-color:#fb7700">
<td >Check</td>
<td >Member</td>
<td >Type</td>
<td >Options</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#ffffff">
<td >
 <asp:CheckBox ID="chkDelete" runat="server" />
</td>
<td >
    <asp:Label ID="lblID" Visible="false" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>'></asp:Label>
    <asp:Label ID="lblName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Member")%>'></asp:Label>
    <asp:TextBox ID="txtName" BackColor="#d4d0c8" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Member")%>' Visible="false"></asp:TextBox>
 </td>
 <td>
    <asp:DropDownList ID="ddlType" runat="server">
    </asp:DropDownList>
 </td>
 <td ><asp:LinkButton ID="lnkEdit" runat="server" CommandName="edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'>Edit</asp:LinkButton>
    <asp:LinkButton Visible="false" ID="lnkUpdate" runat="server" CommandName="update" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'>Update</asp:LinkButton>
    <asp:LinkButton Visible="false" ID="lnkCancel" runat="server" CommandName="cancel" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'>Cancel</asp:LinkButton>
    <asp:LinkButton ID="lnkDelete" runat="server" CommandName="delete" OnClientClick='javascript:return confirm("Are you sure you want to delete?")'
    CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'>Delete</asp:LinkButton>

</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr style="background-color:#15880a">
<td colspan="5">
    </FooterTemplate>
</asp:Repeater>
<asp:LinkButton ID="lnkDelSelected" ForeColor="White" runat="server" onclick="LinkButton1_Click" OnClientClick='javascript:return confirm("Are you sure you want to delete?")'>Delete Selected</asp:LinkButton>

Connection string in Web.Config

<appSettings>       
    <add key="ConnectionString" value="Data Source=MADHU\MUKRAM_SQL2005;Initial Catalog=EcareDiary;User ID=sa;Password=;"/>
</appSettings>

Aspx.cs looks like:

To display the records.

private void BindRepeater()
{
    SqlConnection SqlCnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
    SqlCommand SqlCmd = new SqlCommand("select * from CPMEMBERS", SqlCnn);
    SqlDataAdapter SqlAd1 = new SqlDataAdapter(SqlCmd);
    DataSet ds = new DataSet();
    SqlAd1.Fill(ds, "CPMEMBERS");
    cpRepeater.DataSource = ds;
    cpRepeater.DataBind();
}

The code in ItemDataBound event of repeater.

Populating the dropdownlist dynamically.

protected void cpRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    DropDownList ddlType = (DropDownList)e.Item.FindControl("ddlType");
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        SqlConnection SqlCnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
        SqlCommand SqlCmd = new SqlCommand("select * from CPMEMBERS", SqlCnn);
        SqlDataAdapter SqlAd1 = new SqlDataAdapter(SqlCmd);
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        SqlAd1.Fill(dt);
        ddlType.DataTextField = "Type";
        ddlType.DataSource = dt;
        ddlType.DataBind();

        ddlType.SelectedValue = DataBinder.Eval(e.Item.DataItem, "UpdatedType").ToString();
    }
}

Updating and deleting of the records using Item Command Event of repeater

if (e.CommandName == "update")
{
    SqlConnection SqlCnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
    SqlCommand SqlCmd = new SqlCommand("update CPMEMBERS set Member=@Member, UpdatedType=@UpdatedType where id=@ID", SqlCnn);
    SqlCmd.Parameters.Add("@Member", SqlDbType.VarChar).Value = txtName.Text;
    SqlCmd.Parameters.Add("@UpdatedType", SqlDbType.VarChar).Value = ddlType.SelectedItem.Text;
    SqlCmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = e.CommandArgument;
    try
    {
        SqlCnn.Open();
        SqlCmd.ExecuteNonQuery();

    }
    catch (Exception ex)
    {
        ex.Message.ToString();
    }
    finally
    {
        if (SqlCnn.State == ConnectionState.Open)
            SqlCnn.Close();
    }
    BindRepeater();
}
if (e.CommandName == "delete")
{
    SqlConnection SqlCnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
    SqlCommand SqlCmd = new SqlCommand("delete CPMEMBERS where id=@ID", SqlCnn);
    SqlCmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = e.CommandArgument;
    try
    {
        SqlCnn.Open();
        SqlCmd.ExecuteNonQuery();

    }
    catch (Exception ex)
    {
        ex.Message.ToString();
    }
    finally
    {
        if (SqlCnn.State == ConnectionState.Open)
            SqlCnn.Close();
    }
    BindRepeater();
}

Output looks like the following.

Output

Image1.gif

In edit mode(after clicking edit button)

Image2.gif

Repeater after updating

Image3.gif

After Deleting the multiple rows repeater looks as

Image4.gif

Up Next
    Ebook Download
    View all
    Learn
    View all