3 Buttons | BtnAdd, BtnDelete, BtnEdit
1 Gridview | Gridview1
1 Label | Label1
Right Click on Gridview select properties
In properties find columns
select CommandFields Add Select Field
Goto Solution Explorer
Right click on App_Data folder and select add new item
Then select xml and name it users.xml
My Xml file :
<Information>
<User>
<Name>Faraz</Name>
<Email>faraz_ali2008@live.com</Email>
</User>
<User>
<Name>Sheraz</Name>
<Email>sherazali95@live.com</Email>
</User>
</Information>
Now in code file
Add Namespace
using System.Xml;
Display Data In GridView
private void loadXmlData()
{
DataSet dt = new DataSet();
dt.ReadXml(Server.MapPath("~/App_Data/users.xml"));
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
loadXmlData();
}
}
Now Gridview Looks like
Insert Data In XML
Now double click on Add Button
protected void BtnAdd_Click(object sender, EventArgs e)
{
try
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("~/App_Data/users.xml"));
XmlElement userE = xd.CreateElement("User");
XmlElement nameE = xd.CreateElement("Name");
XmlElement emailE = xd.CreateElement("Email");
nameE.InnerText = TxtName.Text.Trim();
emailE.InnerText = TxtEmail.Text.Trim();
userE.AppendChild(nameE);
userE.AppendChild(emailE);
xd.DocumentElement.AppendChild(userE);
xd.Save(Server.MapPath("~/App_Data/users.xml"));
loadXmlData();
}
catch (Exception ex)
{
Label1.Text = "Error : " + ex.Message;
}
}
For Update Or Delete
First we have to select data from Gridview
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
//when user click on gridview select link it pass a seleted index to session
selectIndex = GridView1.SelectedIndex;
FindXMLData(selectIndex);
}
internal int selectIndex
{
get
{
if (Session["Page_selectIndex"] == null)
{
return -1;
}
return Int32.Parse(Session["Page_selectIndex"].ToString());
}
set
{
Session["Page_selectIndex"] = value;
}
}
//this method retrieve selected data from xml and show in textfields
private void FindXMLData(int selectedIndex)
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("~/App_Data/users.xml"));
XmlNodeList XNL = xd.DocumentElement.ChildNodes;
XmlNode XmlN = XNL.Item(selectedIndex);
TxtName.Text = XmlN["Name"].InnerText;
TxtEmail.Text = XmlN["Email"].InnerText;
}
Delete Data
protected void BtnDelete_Click(object sender, EventArgs e)
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("~/App_Data/users.xml"));
XmlNode XmlN = xd.DocumentElement.ChildNodes.Item(selectIndex);
XmlN.ParentNode.RemoveChild(XmlN);
xd.Save(Server.MapPath("~/App_Data/users.xml"));
loadXmlData();
TxtName.Text = "";
TxtEmail.Text = "";
}
Update/Edit Data
protected void BtnEdit_Click(object sender, EventArgs e)
{
if (selectIndex == -1)
{
Label1.Text = "Update Error";
}
else
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("~/App_Data/users.xml"));
XmlNode xmlN = xd.DocumentElement.ChildNodes.Item(selectIndex);
xmlN["Name"].InnerText = TxtName.Text.Trim();
xmlN["Email"].InnerText = TxtEmail.Text.Trim();
xd.Save(Server.MapPath("~/App_Data/users.xml"));
loadXmlData();
}
}
Done.
Download Source Code


No comments:
Post a Comment