The article is about edit update delete records in a simple way inside 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: In edit mode(after clicking edit button) Repeater after updating After Deleting the multiple rows repeater looks as
First Example of java