Please run this code in a new Website.
HTML
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="400px" OnPageIndexChanging="OnPageIndexChanging"
AllowPaging="True" AutoGenerateRows="False" DataKeyNames="Id" BackColor="#DEBA84"
BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" OnItemInserting="DetailsView1_ItemInserting"
OnModeChanging="DetailsView1_ModeChanging" OnItemCommand="DetailsViewParentsDetails_ItemCommand"
CellPadding="3" CellSpacing="2" AutoGenerateInsertButton="true" AutoGenerateEditButton="true" OnItemUpdating="OnItemUpdating"
OnItemDeleting="OnItemDeleting" AutoGenerateDeleteButton="true">
<EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<Fields>
<asp:TemplateField HeaderText="Id">
<EditItemTemplate>
<asp:TextBox ID="txtId" runat="server" Text='<%# Eval("Id") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Eval("Id") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtId" runat="server" Text='<%# Eval("Id") %>' />
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>' />
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Country">
<EditItemTemplate>
<asp:TextBox ID="txtCountry" runat="server" Text='<%# Eval("Country") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblCountry" runat="server" Text='<%# Eval("Country") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtCountry" runat="server" Text='<%# Eval("Country") %>' />
</InsertItemTemplate>
</asp:TemplateField>
</Fields>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
</asp:DetailsView>
Namespace
using System.Data;
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateDetailsView();
}
}
protected void OnPageIndexChanging(object sender, DetailsViewPageEventArgs e)
{
DetailsView1.PageIndex = e.NewPageIndex;
PopulateDetailsView();
}
private void PopulateDetailsView()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
if (ViewState["DataTable"] != null)
{
dt = (DataTable)ViewState["DataTable"];
}
DetailsView1.DataSource = dt;
DetailsView1.DataBind();
ViewState["DataTable"] = dt;
}
protected void DetailsViewParentsDetails_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
if (e.CommandName.Equals("New"))
{
this.DetailsView1.ChangeMode(DetailsViewMode.Insert);
this.DetailsView1.DataBind();
}
else if (e.CommandName.Equals("Edit"))
{
this.DetailsView1.ChangeMode(DetailsViewMode.Edit);
this.DetailsView1.DataBind();
}
}
protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
DetailsView1.ChangeMode(e.NewMode);
PopulateDetailsView();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
((TextBox)((DetailsView)sender).FindControl("txtId")).Enabled = false;
}
}
protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
DataTable dt = new DataTable();
if (ViewState["DataTable"] != null)
{
dt = (DataTable)ViewState["DataTable"];
int Id = Convert.ToInt32(((TextBox)((DetailsView)sender).FindControl("txtId")).Text);
string name = ((TextBox)((DetailsView)sender).FindControl("txtName")).Text;
string country = ((TextBox)((DetailsView)sender).FindControl("txtCountry")).Text;
dt.Rows.Add(Id, name, country);
DetailsView1.DataSource = dt;
DetailsView1.DataBind();
ViewState["DataTable"] = dt;
PopulateDetailsView();
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
PopulateDetailsView();
}
}
protected void OnItemDeleting(object sender, DetailsViewDeleteEventArgs e)
{
Label txtUname = (Label)((DetailsView)sender).FindControl("lblId");
DataTable dt = new DataTable();
if (ViewState["DataTable"] != null)
{
dt = (DataTable)ViewState["DataTable"];
foreach (DataRow dataRow in dt.Rows)
{
if (dataRow["Id"].ToString() == txtUname.Text)
{
dt.Rows.Remove(dataRow);
break;
}
}
ViewState["DataTable"] = dt;
}
PopulateDetailsView();
}
protected void OnItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
int id = Convert.ToInt32(((TextBox)((DetailsView)sender).FindControl("txtId")).Text);
string name = ((TextBox)((DetailsView)sender).FindControl("txtName")).Text;
string country = ((TextBox)((DetailsView)sender).FindControl("txtCountry")).Text;
DataTable dt = new DataTable();
dt = (DataTable)ViewState["DataTable"];
foreach (DataRow dataRow in dt.Rows)
{
if (Convert.ToInt32(dataRow["Id"]) == id)
{
dataRow["Id"] = id;
dataRow["Name"] = name;
dataRow["Country"] = country;
dt.AcceptChanges();
ViewState["DataTable"] = dt;
}
}
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
PopulateDetailsView();
}