Edit Update Delete record in Repeater Control


The article is about edit update 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
 

Next Recommended Readings