Friday, October 29, 2010

add edit and delete xml item using XPath and xmlnode

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns=false onrowcommand="GridView1_RowCommand" PageSize=20 AllowPaging=true Width="80%" >
<Columns>

<asp:TemplateField HeaderText="Sno.">
<ItemTemplate>
<%#Container.DataItemIndex+1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Project Name">
<ItemTemplate>
<%#Eval("ProjectName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Client Name">
<ItemTemplate>
<%#Eval("ClientName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Images">
<ItemTemplate>
<img src="../<%#Eval("ThumbImage") %>" width=100 height=100 border=0 />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Action" >
<ItemTemplate>
<asp:LinkButton ID="lnklink" Text="Edit" runat="server" CommandName="Edit" CommandArgument='<%#Eval("ProductId") %>' ></asp:LinkButton>
<asp:Button ID="Button2" runat="server" Text="Delete" CommandName="Del" CommandArgument='<%#Container.DataItemIndex%>' />

</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Xml;
using System.Web.UI.WebControls;

public partial class cpanel_Add_Project : System.Web.UI.Page
{
string Id
{
get
{
if (ViewState["Id"] == null)
return "";
else
return (string)ViewState["Id"];
}
set
{
ViewState["Id"] = value;
}
}
DataSet Table
{
get
{
if (ViewState["Table"] == null)
return new DataSet();
else
return (DataSet)ViewState["Table"];
}
set
{
ViewState["Table"] = value;
}
}
string ThumbImage
{
get
{
if (ViewState["ThumbImage"] == null)
return "";
else
return (string)ViewState["ThumbImage"];
}
set
{
ViewState["ThumbImage"] = value;
}
}

protected void Page_Load(object sender, EventArgs e)
{


if (!string.IsNullOrEmpty(Request.QueryString["id"]))
{
Id = Convert.ToString(Request.QueryString["id"]);
}
if (!IsPostBack)
{

BindData();

}

}
class ClsProducts
{
string _ProductId = string.Empty;

public string ProductId
{
get { return _ProductId; }
set { _ProductId = value; }
}
string _projectName = string.Empty;

public string ProjectName
{
get { return _projectName; }
set { _projectName = value; }
}
string _clientName = string.Empty;

public string ClientName
{
get { return _clientName; }
set { _clientName = value; }
}
string _thumbImage = string.Empty;

public string ThumbImage
{
get { return _thumbImage; }
set { _thumbImage = value; }
}
}
private void BindData()
{
XmlDocument item = new XmlDocument();

item.Load(Server.MapPath("~/") + "projects.xml");

XmlNodeList itemdata = item.SelectNodes("//projects/project");
if (itemdata != null)
{
List<ClsProducts> itemProduct = new List<ClsProducts>();
for (int n = 0; n < itemdata.Count; n++)
{
ClsProducts obj = new ClsProducts();
obj.ProductId = itemdata.Item(n).ChildNodes.Item(0).InnerText;
obj.ProjectName = itemdata.Item(n).ChildNodes.Item(1).InnerText;
obj.ClientName = itemdata.Item(n).ChildNodes.Item(2).InnerText;
obj.ThumbImage = itemdata.Item(n).ChildNodes.Item(3).InnerText;
itemProduct.Add(obj);

}
GridView1.DataSource = itemProduct;
GridView1.DataBind();
}
if (Id != "")
{
XmlNode xlist = item.SelectSingleNode("//projects/project[projectID=" + Id + "]");
if (xlist != null)
{
txtProjectName.Value = xlist.ChildNodes.Item(1).InnerText;
txtprojectClient.Value = xlist.ChildNodes.Item(2).InnerText;
ThumbImage = xlist.ChildNodes.Item(3).InnerText;
Image1.ImageUrl = "../" + ThumbImage;
}
else
{
Image1.Visible = false;
}
}
else
{
Image1.Visible = false;
}
}
protected void btnImage_Click(object sender, ImageClickEventArgs e)
{
if (UpThumbImage.HasFile)
{
string filename = DateTime.Now.ToString("MMddyyyyHHmmss") + UpThumbImage.FileName;
string location = Server.MapPath("~/images/thumbnails/") + filename;
UpThumbImage.PostedFile.SaveAs(location);
ThumbImage = "images/thumbnails/" + filename;
}
else
{
if (ThumbImage.Length == 0)
{
WebUtility.PageAlert(Page, "Please Upload Images!");
return;
}
}
XmlDocument item = new XmlDocument();

item.Load(Server.MapPath("~/") + "projects.xml");
if (Id!="")
{

XmlNode xlist = item.SelectSingleNode("//projects/project[projectID=" + Id + "]");
if (xlist != null)
{
xlist.ChildNodes.Item(1).InnerText = txtProjectName.Value;
xlist.ChildNodes.Item(2).InnerText = txtprojectClient.Value;
xlist.ChildNodes.Item(3).InnerText = ThumbImage;
item.Save(Server.MapPath("~/") + "projects.xml");
}

}
else
{
XmlNodeList xlist1 = item.SelectNodes("//projects/project");
string xmlvalue=""
+ "<projectID>" + DateTime.Now.ToString("MMddyyHHmmss")+ "</projectID>" +
"<projectName>"+txtProjectName.Value+"</projectName>"+
"<projectClient>"+txtprojectClient.Value+"</projectClient>"+
"<imagethumb>"+ThumbImage+"</imagethumb>"+
"";
XmlNode newnode = item.LastChild.FirstChild.Clone();

newnode.InnerXml = xmlvalue;
item.LastChild.AppendChild(newnode);
item.Save(Server.MapPath("~/") + "projects.xml");
}
BindData();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
Response.Redirect("Add-Project.aspx?id=" + e.CommandArgument.ToString());
}
else if (e.CommandName == "Del")
{
XmlDocument item = new XmlDocument();
int n = Convert.ToInt32(e.CommandArgument.ToString());
item.Load(Server.MapPath("~/") + "projects.xml");
XmlNodeList xlist = item.SelectNodes("//projects/project");
xlist.Item(n).ParentNode.RemoveChild(xlist.Item(n));
item.Save(Server.MapPath("~/") + "projects.xml");

WebUtility.PageAlert(Page, "Delete Product successfully", "Add-Project.aspx");
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<projects>
<project>
<projectID>4</projectID>
<projectName>project 4</projectName>
<projectClient>client 4</projectClient>
<imagethumb>images/thumbnails/4.jpg</imagethumb>
</project>
<project>
<projectID>5</projectID>
<projectName>project 5</projectName>
<projectClient>client 5</projectClient>
<imagethumb>images/thumbnails/5.jpg</imagethumb>
</project>
<project>
<projectID>6</projectID>
<projectName>project 6</projectName>
<projectClient>client 6</projectClient>
<imagethumb>images/thumbnails/6.jpg</imagethumb>
</project>
<project>
<projectID>7</projectID>
<projectName>project 7</projectName>
<projectClient>client 7</projectClient>
<imagethumb>images/thumbnails/7.jpg</imagethumb>
</project>
<project>
<projectID>102310214626</projectID>
<projectName>Rishabh Sharma</projectName>
<projectClient>Rishabh client</projectClient>
<imagethumb>images/thumbnails/10232010214626client5.png</imagethumb>
</project>
</projects>

No comments :

Post a Comment

AJAX, asp, Asp.net, asp.net and sql server security, Asp.net IntemIndex, C#, Css, DataBinder.Eval, DataKeyNames, Datalist, Datapager, DataSet, DataTable, DropDownList, FindControl, gridview, JavaScript, jquery, Listview, Paging, Regex, RegularExpression, Repeater, Server side validation, Sql Server, timer, timercallback, Validation, XML, xmlnode, XPath