XML File
<?xml version=”1.0″ encoding=”UTF-8″?>
<root>
<fruit id=”1″>
<fid>1</fid>
<fname>Lemons</fname>
<fcolor>Yellow</fcolor>
</fruit>
<fruit id=”2″>
<fid>2</fid>
<fname>Grape</fname>
<fcolor>White</fcolor>
</fruit>
<fruit id=”3″>
<fid>3</fid>
<fname>Grape</fname>
<fcolor>Black</fcolor>
</fruit>
<fruit id=”4″>
<fid>4</fid>
<fname>Banana</fname>
<fcolor>Yellow</fcolor>
</fruit>
</root>
ASPX Page
<asp:GridView ID=”GridView1″ runat=”server”
AutoGenerateColumns=”false”
DataKeyNames=”id”
DataSourceID=”XmlDataSource1″
Width=”60%”
OnRowCancelingEdit=”GridView1_RowCancelingEdit”
OnRowEditing=”GridView1_RowEditing”
OnRowUpdating=”GridView1_RowUpdating”
OnRowDeleting=”GridView1_RowDeleting”>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID=”btnEdit” runat=”server”
Text=”Edit”
CommandName=”Edit”>
</asp:LinkButton>
<asp:LinkButton ID=”btnDelete” runat=”server”
Text=”Delete”
CommandName=”Delete”>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID=”btnUpdate” runat=”server”
Text=”Update”
CommandName=”Update”>
</asp:LinkButton>
<asp:LinkButton ID=”btnCancel” runat=”server”
Text=”Cancel”
CommandName=”Cancel”>
</asp:LinkButton>
</EditItemTemplate>
<ItemStyle Width=”10%” />
</asp:TemplateField>
<asp:TemplateField HeaderText=”ID”>
<ItemTemplate>
<asp:Label ID=”lblID” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fid”)%>’>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID=”txtID” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fid”)%>’>
</asp:TextBox>
</EditItemTemplate>
<ItemStyle Width=”30%” />
</asp:TemplateField>
<asp:TemplateField HeaderText=”Name”>
<ItemTemplate>
<asp:Label ID=”lblName” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fname”)%>’>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID=”txtName” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fname”)%>’>
</asp:TextBox>
</EditItemTemplate>
<ItemStyle Width=”30%” />
</asp:TemplateField>
<asp:TemplateField HeaderText=”Colour”>
<ItemTemplate>
<asp:Label ID=”lblColor” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fcolor”)%>’>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID=”txtColor” runat=”server”
Text=’<%# XPathBinder.Eval(Container.DataItem, “fcolor”)%>’>
</asp:TextBox>
</EditItemTemplate>
<ItemStyle Width=”30%” />
</asp:TemplateField>
</Columns>
<HeaderStyle ForeColor=”White” BackColor=”DarkGreen” />
</asp:GridView>
<asp:XmlDataSource ID=”XmlDataSource1″ runat=”server”
DataFile=”~/App_Data/myData.xml”
XPath= “root/fruit”>
</asp:XmlDataSource>
ASPX.CS
#region “GridView Events”
#region “Edit Events”
#region “Row Editing Event”
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
#endregion
#region “Row Updating Event”
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string myID = GridView1.DataKeys[e.RowIndex].Value.ToString();
string fruitID = ((TextBox)GridView1.Rows[e.RowIndex].FindControl(“txtID”)).Text;
string fruitName = ((TextBox)GridView1.Rows[e.RowIndex].FindControl(“txtName”)).Text;
string fruitColor = ((TextBox)GridView1.Rows[e.RowIndex].FindControl(“txtColor”)).Text;
XmlDocument xmlDoc = XmlDataSource1.GetXmlDocument();
XmlNodeList nodeList = xmlDoc.SelectNodes(“root/fruit[@id='" + myID + "']“);
nodeList[0].ChildNodes[0].InnerText = fruitID;
nodeList[0].ChildNodes[1].InnerText = fruitName;
nodeList[0].ChildNodes[2].InnerText = fruitColor;
//xmlDoc.Save(Server.MapPath(“./”)+”/App_Data/hi.xml”);
XmlDataSource1.Save();
GridView1.EditIndex = -1;
e.Cancel = true;
GridView1.DataBind();
}
#endregion
#region “Row Cancelling Edit Event”
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridView1.DataBind();
}
#endregion
#endregion
#region “Deleting Events”
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
System.Xml.XmlDocument Document = XmlDataSource1.GetXmlDocument();
string myID = GridView1.DataKeys[e.RowIndex].Value.ToString();
System.Xml.XmlNode node = Document.SelectSingleNode(“root/fruit[@id='" + myID + "']“);
node.ParentNode.RemoveChild(node);
XmlDataSource1.Save();
e.Cancel = true;
GridView1.DataBind();
}
#endregion
#endregion