ASP.Net/XML/XML Edit
Edit XML data through DataSet in C#
<source lang="csharp">
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script Language="c#" runat="server">
void Page_Load(object sender, EventArgs e) { DataSet objDataSet = new DataSet(); // Read in the XML file objDataSet.ReadXml(Server.MapPath("NewEmployees.xml")); // Show it in a grid dgEmployees1.DataSource = objDataSet.Tables[0].DefaultView; dgEmployees1.DataBind(); // Modify a row objDataSet.Tables["employee"].Rows[0]["firstName"] = "A"; objDataSet.Tables["employee"].Rows[0]["lastName"] = "B"; // Add a new row to the table DataTable objTable = null; DataRow objNewRow = null; objTable = objDataSet.Tables["employee"]; objNewRow = objTable.NewRow(); objNewRow["firstName"] = "C"; objNewRow["lastName"] = "D"; objTable.Rows.Add(objNewRow); // Save it to a new file objDataSet.WriteXml(Server.MapPath("Employees2.xml")); // Read in the new file DataSet objDataSet2 = new DataSet(); objDataSet2.ReadXml(Server.MapPath("Employees2.xml")); // Show it in another grid dgEmployees2.DataSource = objDataSet2.Tables[0].DefaultView; dgEmployees2.DataBind(); }
</script> <html>
<body>
<asp:DataGrid id="dgEmployees1" runat="server" /> | <asp:DataGrid id="dgEmployees2" runat="server" /> |
</body>
</html>
<%--NewEmployees.xml <?xml version="1.0"?> <employees>
<employee id="1"> <firstName>Nancy</firstName> <lastName>Lee</lastName> <city>Seattle</city> <state>WA</state> <zipCode>98122</zipCode> </employee> <employee id="2"> <firstName>Jason</firstName> <lastName>Wang</lastName> <city>Vancouver</city> <state>WA</state> <zipCode>98123</zipCode> </employee>
</employees> --%>
</source>
Use asp datagrid to edit data in XML
<source lang="csharp">
<%-- Beginning ASP.NET 1.0 with C# (Paperback) by David Sussman, Chris Ullman,
Juan T. Llibre, John Kauffman, Ollie Cornes, Ajoy Krishnamoorthy, Srinivasa Sivakumar, Chris Goode, Neil Raybould, Christopher Miller, Rob Birdwell, Matt Butler, Gary Johnson
- Publisher: Wrox Press; 1st edition (June 2002)
- Language: English
- ISBN: 1861007345
--%>
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Globalization" %> <script Language="c#" runat="server">
void Page_Load(object sender, EventArgs e) { if (!(Page.IsPostBack)) { EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); } } protected DataSet LoadMyCalendarData() { string sourceXml = Server.MapPath("MyCalendar.xml"); if (!(File.Exists(sourceXml))) { return null; } DataSet cachedDataSet = (DataSet)Session["MyCalendarData"]; if (!(cachedDataSet == null)) { return cachedDataSet; } DataSet dataSet = new DataSet(); try { dataSet.ReadXml(sourceXml); Session["MyCalendarData"] = dataSet; } catch (Exception e) { ErrorMessage.Text = e.Message; dataSet = null; } return dataSet; } void DEDR_Edit(object sender, DataGridCommandEventArgs e) { EventData.EditItemIndex = Convert.ToInt32(e.Item.ItemIndex); EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); } void DEDR_Update(object sender, DataGridCommandEventArgs e) { DataSet dataSet = LoadMyCalendarData(); int row = Convert.ToInt32(e.Item.ItemIndex); TextBox EditText = null; EditText = (TextBox)e.Item.FindControl("txtShortDesc"); dataSet.Tables[0].Rows[row]["ShortDesc"] = EditText.Text; EditText = (TextBox)e.Item.FindControl("txtDetailDesc"); dataSet.Tables[0].Rows[row]["DetaiLDesc"] = EditText.Text; EditText = (TextBox)e.Item.FindControl("txtEventDate"); dataSet.Tables[0].Rows[row]["EventDate"]= EditText.Text; EditText = (TextBox)e.Item.FindControl("txtStartTime"); dataSet.Tables[0].Rows[row]["StartTime"] = EditText.Text; EditText = (TextBox)e.Item.FindControl("txtEndTime"); dataSet.Tables[0].Rows[row]["EndTime"] = EditText.Text; dataSet.WriteXml(Server.MapPath("MyCalendar.xml")); Session["MyCalendarData"] = null; EventData.EditItemIndex = -1; EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); } void DEDR_Cancel(object sender, DataGridCommandEventArgs e) { EventData.EditItemIndex = -1; Session["MyCalendarData"] = null; EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); } void DEDR_Delete(object sender, DataGridCommandEventArgs e) { DataSet dataSet = LoadMyCalendarData(); int row = Convert.ToInt32(e.Item.ItemIndex); dataSet.Tables[0].Rows[row].Delete(); dataSet.WriteXml(Server.MapPath("MyCalendar.xml")); Session["MyCalendarData"] = null; EventData.EditItemIndex = -1; EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); } void DEDR_Add(object sender, EventArgs e) { DataSet dataSet = LoadMyCalendarData(); DataRow newRow; newRow = dataSet.Tables[0].NewRow(); newRow["ShortDesc"] = ""; newRow["DetailDesc"] = ""; newRow["EventDate"] = ""; newRow["StartTime"] = ""; newRow["EndTime"] = ""; dataSet.Tables[0].Rows.Add(newRow); dataSet.WriteXml(Server.MapPath("MyCalendar.xml")); Session["MyCalendarData"] = null; EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); EventData.EditItemIndex = EventData.Items.Count - 1; EventData.DataSource = LoadMyCalendarData(); EventData.DataBind(); }
</script>
<html>
<body> <form runat="server"> <asp:Label id="ErrorMessage" runat="server" />
<asp:LinkButton OnClick="DEDR_Add" Text="Add new event" runat="server"/>
<asp:DataGrid id="EventData" AutoGenerateColumns="false" width="100%" runat="server" OnEditCommand="DEDR_Edit" OnUpdateCommand="DEDR_Update" OnCancelCommand="DEDR_Cancel" OnDeleteCommand="DEDR_Delete"> <HeaderStyle ForeColor="White" BackColor="DodgerBlue" Font-Bold="true"/> <ItemStyle BackColor="White"/> <AlternatingItemStyle BackColor="Gainsboro"/> <Columns> <asp:TemplateColumn HeaderText="Date"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "EventDate") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtEventDate" Size="25"; Text="<%# DataBinder.Eval(Container.DataItem,"EventDate") %>" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Event"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "ShortDesc") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtShortDesc" Size="25"; Text="<%# DataBinder.Eval(Container.DataItem,"ShortDesc") %>" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Description"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "DetailDesc") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtDetailDesc" Size="50" Text="<%# DataBinder.Eval(Container.DataItem, "DetailDesc") %>" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Start Time"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "StartTime") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtStartTime" Size="7" Text="<%# DataBinder.Eval(Container.DataItem, "StartTime") %>" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="EndTime"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "EndTime") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtEndTime" Size="7" Text="<%# DataBinder.Eval(Container.DataItem, "EndTime") %>" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn> <ItemTemplate> <asp:LinkButton CommandName="Edit" Text="Edit" runat="server"/> <asp:LinkButton CommandName="Delete" Text="Delete" runat="server"/> </ItemTemplate> <EditItemTemplate> <asp:LinkButton CommandName="Cancel" Text="Cancel" runat="server"/> <asp:LinkButton CommandName="Update" Text="Update" runat="server"/> </EditItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> </form> </body>
</html>
<%-- <?xml version="1.0" standalone="yes"?> <MyCalendar>
<Event> <ShortDesc>Gig in Portland - Jazz Club</ShortDesc> <DetailDesc>This should be fun - playing J & T again - be sure to bring the charts.</DetailDesc> <EventDate>2002/07/02</EventDate> <StartTime>6:00PM</StartTime> <EndTime>11:30PM</EndTime> </Event> <Event> <ShortDesc> Rehearsal - Brigadoon</ShortDesc> <DetailDesc>Community Theatre orchestra rehearsal - bring mutes.</DetailDesc> <EventDate>2002/07/14</EventDate> <StartTime>3:30PM</StartTime> <EndTime>6:30PM</EndTime> </Event> <Event> <ShortDesc>.NET Training Class</ShortDesc> <DetailDesc>This should be fun - we"ll explore some of the really cool stuff, like ASP.NET server controls and Web Services.</DetailDesc> <EventDate>2002/07/17</EventDate> <StartTime>8:00AM</StartTime> <EndTime>4:30PM</EndTime> </Event> <Event> <ShortDesc>Writing Workshop for Musical Project with Gregg</ShortDesc> <DetailDesc>We"re going to brainstorm some ideas and see if we can come up with something great. We"re off to a good start.</DetailDesc> <EventDate>2002/07/19</EventDate> <StartTime>10:00AM</StartTime> <EndTime>6:30PM</EndTime> </Event> <Event> <ShortDesc>Community Band</ShortDesc> <DetailDesc>Central park - we"ll play everything from standards to shows tunes to classical to marches - you name it. People bring their lawn chairs, eat their dinner, kids play - a great time!</DetailDesc> <EventDate>2002/07/24</EventDate> <StartTime>7:00PM</StartTime> <EndTime>9:00PM</EndTime> </Event> <Event> <ShortDesc>Jam Session at the Beach</ShortDesc> <DetailDesc>Bring more food this time and the crab nets - and the instruments! We"ll might stay for a week or so depending on the weather.</DetailDesc> <EventDate>2002/07/21</EventDate> <StartTime>8:00AM</StartTime> <EndTime>11:30PM</EndTime> </Event> <Event> <ShortDesc>Rob"s Birthday!</ShortDesc> <DetailDesc>Nothing too fancy - just friends and family. Hope it"s a nice day - bike ride would be fun.</DetailDesc> <EventDate>2002/07/30</EventDate> <StartTime>6:09PM</StartTime> <EndTime>11:30PM</EndTime> </Event> <Event> <ShortDesc /> <DetailDesc /> <EventDate /> <StartTime /> <EndTime /> </Event> <Event> <ShortDesc>Event</ShortDesc> <DetailDesc>Number </DetailDesc> <EventDate>Wrox</EventDate> <StartTime>6.00</StartTime> <EndTime>11.30</EndTime> </Event>
</MyCalendar> --%>
</source>