Description:-
In this
Example we explain that How to create CRUD operation in Repeater Control or How
to Insert Update Delete in Repeater in Asp.Net.
Repeater Control are best Control because you can easily create Tables,Unordered lists, Ordered lists, anchor tags, database based menus, Image galleries etc. using repeater control.
Repeater Control are used to Bind data which are
Repeated more time.in this Example we Create Examle of Like and Comment same
like in Social Website.in which you can easily insert update and delete the
comment.
There are Five Types of Templates of
Reapeter Control are as Described below
ItemTemplate:
ItemTemplate are used to defines each
item is rendered from data source collection.
AlternatingItemTemplate: AlternatingItemTemplates are used to change the background color and css-styles of AlternatingItems in DataSource collection
HeaderTemplate: HeaderTemplate are used to display Header text or Header Image for DataSource collection and apply different styles for header text .
FooterTemplate: FooterTemplate are used to display footer Template for element for DataSource collection
SeparatorTemplate: SeparatorTemplate are used to separator each element which separates each Item in Item collection. Usually, SeparateTemplate will be <br> html element or <hr> html element.
AlternatingItemTemplate: AlternatingItemTemplates are used to change the background color and css-styles of AlternatingItems in DataSource collection
HeaderTemplate: HeaderTemplate are used to display Header text or Header Image for DataSource collection and apply different styles for header text .
FooterTemplate: FooterTemplate are used to display footer Template for element for DataSource collection
SeparatorTemplate: SeparatorTemplate are used to separator each element which separates each Item in Item collection. Usually, SeparateTemplate will be <br> html element or <hr> html element.
In this we Create ItemCommand of Repeater same as
RowCommand in in Gridview.like as follows:
<asp:Repeater ID="RepDetails" runat="server" onitemcommand="rept_ItemCommand">
in which ItemCommand we Handle Edit and Delete
Command of Repeater and we pass the Command Argument in Edit Delete Event
click.
First you have to create the following Table
to Show Example of How to Create Insert,Update,Delete in Gridview plz Click Here CRUD operation in GridView
repeter.aspx:-
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="repetar.aspx.cs" Inherits="repetar" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Repeator
Control Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Enter
Name: </td>
<td><asp:TextBox ID="txtName" runat="server"/></td>
</tr>
<tr>
<td valign="top">Enter
Comments:</td>
<td><asp:TextBox ID="txtComment" runat="server" Rows="5" Columns="20" TextMode="MultiLine"/></td>
</tr>
<tr>
<td></td>
<td><asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /></td>
</tr>
</table>
</div>
<div>
<asp:Repeater ID="RepDetails" runat="server" onitemcommand="rept_ItemCommand">
<HeaderTemplate>
<table style=" border:1px solid #df5015; width:500px" cellpadding="0">
<tr style="background-color:#df5015; color:White">
<td colspan="2">
<b>Comments</b>
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#EBEFF0">
<td>
<table style="background-color:#EBEFF0;border-top:1px dotted #df5015; width:500px" >
<tr>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblComment" runat="server" Text='<%#Eval("comment") %>'/>
<asp:TextBox ID="txtComment" runat="server" Text='<%#Eval("comment") %>' Visible="false"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<table style="background-color:#EBEFF0;border-top:1px dotted #df5015;border-bottom:1px solid #df5015; width:500px" >
<tr>
<td>Post
By: <asp:Label ID="lblUser" runat="server" Font-Bold="true" Text='<%#Eval("unm") %>'/>
<asp:TextBox ID="txtName" runat="server" Text='<%#Eval("unm") %>' Visible="false"></asp:TextBox>
</td>
<td>Created
Date:<asp:Label ID="lblDate" runat="server" Font-Bold="true" Text='<%#Eval("postdate") %>'/></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td>
<table style="background-color:#EBEFF0;border-top:1px dotted #c1650f;border-bottom:1px solid #c1650f; width:300px" >
<tr>
<td>
<asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="edit">Edit</asp:LinkButton>
<asp:LinkButton ID="lnkDelete" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="delete" onclientclick="return
confirm('Are you sure you want to delete?')">Delete</asp:LinkButton>
<asp:LinkButton ID="lnkUpdate" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="update" Visible="false">Update</asp:LinkButton>
<asp:LinkButton ID="lnkCancel" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="cancel" Visible="false">Cancel</asp:LinkButton>
</td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
repeter.aspx.cs:-
using
System;
using
System.Data;
using
System.Data.SqlClient;
using
System.Web.UI.WebControls;
public partial class repetar :
System.Web.UI.Page
{
private SqlConnection
con = new SqlConnection("Data
Source=SQLDB;Initial Catalog=Demo;User ID=Demoh;Password=Demo1@");
protected void
Page_Load(object sender, EventArgs e)
{
if
(!IsPostBack)
{
bindcomment();
}
}
// This button click event is
used to insert comment details and bind data to repeater control
protected void
btnSubmit_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand
cmd = new SqlCommand("insert
into comment (unm,comment,postdate) values(@userName,@comment,@postedDate)",
con);
cmd.Parameters.AddWithValue("@userName",
txtName.Text);
cmd.Parameters.AddWithValue("@comment",
txtComment.Text);
cmd.Parameters.AddWithValue("@postedDate", DateTime.Now);
cmd.ExecuteNonQuery();
con.Close();
txtName.Text = string.Empty;
txtComment.Text = string.Empty;
bindcomment();
}
//Bind Data to Repeater
Control
protected void
bindcomment()
{
con.Open();
SqlCommand
cmd = new SqlCommand("select
* from comment Order By postdate desc", con);
DataSet ds
= new DataSet();
SqlDataAdapter da
= new SqlDataAdapter(cmd);
da.Fill(ds);
if
(ds.Tables[0].Rows.Count > 0)
{
RepDetails.Visible = true;
RepDetails.DataSource = ds;
RepDetails.DataBind();
}
else
{
RepDetails.Visible = false;
}
con.Close();
}
protected void
rept_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if
(e.CommandName == "edit")
{
((TextBox)e.Item.FindControl("txtName")).Visible
= true;
((TextBox)e.Item.FindControl("txtComment")).Visible
= true;
((LinkButton)e.Item.FindControl("lnkEdit")).Visible
= false;
((LinkButton)e.Item.FindControl("lnkDelete")).Visible
= false;
((LinkButton)e.Item.FindControl("lnkUpdate")).Visible
= true;
((LinkButton)e.Item.FindControl("lnkCancel")).Visible
= true;
}
if
(e.CommandName == "update")
{
string
Name = ((TextBox)e.Item.FindControl("txtName")).Text;
string
comment = ((TextBox)e.Item.FindControl("txtComment")).Text;
SqlDataAdapter
adp = new SqlDataAdapter("Update
comment set unm= @Name,comment=@comment where id = @Id",
con);
adp.SelectCommand.Parameters.AddWithValue("@Name",Name);
adp.SelectCommand.Parameters.AddWithValue("@comment",comment);
adp.SelectCommand.Parameters.AddWithValue("@Id",
e.CommandArgument);
DataSet ds
= new DataSet();
adp.Fill(ds);
bindcomment();
}
if
(e.CommandName == "delete")
{
con.Open();
SqlCommand
cmd = new SqlCommand("delete
from comment where id = @Id", con);
cmd.Parameters.AddWithValue("@Id",
e.CommandArgument);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
bindcomment();
}
if
(e.CommandName == "cancel")
{
((TextBox)e.Item.FindControl("txtName")).Visible
= false;
((TextBox)e.Item.FindControl("txtComment")).Visible
= false;
((LinkButton)e.Item.FindControl("lnkEdit")).Visible
= true;
((LinkButton)e.Item.FindControl("lnkDelete")).Visible
= true;
((LinkButton)e.Item.FindControl("lnkUpdate")).Visible
= false;
((LinkButton)e.Item.FindControl("lnkCancel")).Visible
= false;
}
}
}
Its really helpful for me to understand where we i lost in my previous interview. Thanks.
ReplyDeleteIf anyone wants to Learn .NET in Chennai go to the Besant Technologies which is No.1 Training Institute in Chennai.
http://www.besanttechnologies.com/training-courses/dot-net-training
thanks for comments.......
DeleteHi thanks for the article. It helped me a lot. While googling I have found this article which is also very helpful to understand edit delete update using asp .net repeater:
ReplyDeletehttp://www.codingfusion.com/Post/Repeater-Edit-Update-Delete-in-Asp-net-using-Ado
thnak you so much.......
DeleteThanks for the article. It has given me so much information that I shared with my students in the class. Come up with more such articles.
ReplyDeleteShashaa
best Dot Net training in Chennai | best Dot Net training in Chennai | best Dot Net training in Chennai
Thanks for comment.also visit the blog for new post.
DeleteThanks for sharing information with clear explanation. This is really awesome to understand.
ReplyDeleteThanks,
Dot Net Training in Chennai | Online Dot Net Course in Chennai