多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > Asp.Net 操作XML文件的增刪改查 利用GridView

Asp.Net 操作XML文件的增刪改查 利用GridView

來源:程序員人生   發布時間:2014-10-08 13:19:52 閱讀次數:2410次

不廢話,直接上如何利用Asp.NET操作XML文件,并對其屬性進行修改,剛開始的時候,是打算使用JS來控制生成XML文件的,但是最后卻是無法創建文件,讀取文件則沒有使用了

index.aspx 文件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="XmlManager.index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>XML管理平臺(管理員)</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowUpdating="GridView1_RowUpdating"> <Columns> <%--<asp:BoundField DataField="id" HeaderText="編號" HeaderStyle-Width="100px" /> <asp:BoundField DataField="key" HeaderText="屬性名" /> <asp:BoundField DataField="value" HeaderText="屬性值" /> <asp:BoundField DataField="explain" HeaderText="說明" />--%> <asp:TemplateField HeaderText="編號" > <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="屬性名" HeaderStyle-Width="200px"> <EditItemTemplate> <asp:TextBox ID="txtKey" runat="server" Text='<%# Bind("key") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("key") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="屬性值" HeaderStyle-Width="200px"> <EditItemTemplate> <asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("value") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Bind("value") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="說明" HeaderStyle-Width="200px"> <EditItemTemplate> <asp:TextBox ID="txtExplain" runat="server" Text='<%# Bind("explain") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Bind("explain") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" ShowDeleteButton="true" HeaderText="操作" /> </Columns> </asp:GridView> <br /> <br /> <div> id:<asp:TextBox ID="txt_Id" runat="server"></asp:TextBox>  屬性名:<asp:TextBox ID="txt_Key" runat="server"></asp:TextBox>  屬性值<asp:TextBox ID="txt_Value" runat="server"></asp:TextBox>  說明:<asp:TextBox ID="txt_Explain" runat="server"></asp:TextBox>  <asp:Button ID="Btn_Add" runat="server" Text="添加" OnClick="Btn_Add_Click" /> </div> </div> </form> </body> </html>

index.aspx.cs文件

using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; namespace XmlManager { public partial class index : System.Web.UI.Page { Command com = new Command(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadGridView(); } } //綁定數據 private void LoadGridView() { this.GridView1.DataSource = Command.LoadDs().Tables[0]; this.GridView1.DataBind(); } //編輯 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; LoadGridView(); } //數據更新 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { Update(e); GridView1.EditIndex = -1; LoadGridView(); } //取消編輯 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; LoadGridView(); } /// <summary> /// 更新xml數據 /// </summary> private void Update(GridViewUpdateEventArgs e) { string id=((Label)GridView1.Rows[e.RowIndex].FindControl("Label1")).Text; string key = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtKey")).Text; string value = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtValue")).Text; string explain = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtExplain")).Text; //Response.Write("<script>alert('" + key+value+explain + "');</script>"); //通過ID獲取信息,然后更改信息 XmlDocument doc = new XmlDocument(); doc.Load(com.XmlFilePath()); XmlNode information = doc.SelectSingleNode("information");//查找出根節點 foreach (XmlNode property in information.ChildNodes) { XmlNode temp_node = property.FirstChild; if (temp_node.InnerText == id) { //第一種方式 //property.RemoveAll(); //XmlElement ele_id = doc.CreateElement("id"); //ele_id.InnerText = id; //property.AppendChild(ele_id); //另外三個屬性如上 //第二種方式 property.ChildNodes[1].InnerText = key; property.ChildNodes[2].InnerText = value; property.ChildNodes[3].InnerText = explain; doc.Save(com.XmlFilePath()); break; } } } //刪除 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { Command.Delete(this.GridView1, e); LoadGridView(); } //添加節點事件 protected void Btn_Add_Click(object sender, EventArgs e) { Add(); LoadGridView(); this.txt_Id.Text = ""; this.txt_Key.Text = ""; this.txt_Value.Text = ""; this.txt_Explain.Text = ""; } //添加 private void Add() { string id = this.txt_Id.Text; string key = this.txt_Key.Text; string value = this.txt_Value.Text; string explain = this.txt_Explain.Text; //從最后一個插入一條數據 XmlDocument doc = new XmlDocument(); doc.Load(com.XmlFilePath()); XmlNode information = doc.SelectSingleNode("information"); XmlElement property = doc.CreateElement("property"); XmlElement ele_id = doc.CreateElement("id"); ele_id.InnerText = id; property.AppendChild(ele_id); XmlElement ele_key = doc.CreateElement("key"); ele_key.InnerText = key; property.AppendChild(ele_key); XmlElement ele_value = doc.CreateElement("value"); ele_value.InnerText = value; property.AppendChild(ele_value); XmlElement ele_explain = doc.CreateElement("explain"); ele_explain.InnerText = explain; property.AppendChild(ele_explain); information.InsertAfter(property, information.LastChild); doc.Save(com.XmlFilePath()); } } }

Command.cs 文件

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using System.Xml; using System.IO; using System.Web.UI; using System.Web.UI.WebControls; namespace XmlManager { public class Command:System.Web.UI.Page { #region 返回當前XML文件路徑 /// <summary> /// 返回當前XML文件路徑 /// </summary> /// <returns></returns> public string XmlFilePath() { return Server.MapPath("test.xml"); } #endregion #region 返回加載的XML源 /// <summary> /// 返回加載的xml源 /// </summary> /// <returns></returns> public static DataSet LoadDs() { Command com = new Command(); //轉換一個XML文件(本地網絡均可)為一個DataSet DataSet ds = new DataSet(); StringReader sreader = null; XmlTextReader xtreader = null; try { XmlDocument doc = new XmlDocument(); doc.Load(com.XmlFilePath()); sreader = new StringReader(doc.InnerXml); xtreader = new XmlTextReader(sreader); ds.ReadXml(xtreader); } catch { throw; } finally { xtreader.Close(); sreader.Close(); } return ds; } #endregion #region 刪除XML元素 /// <summary> /// 刪除XML元素 /// </summary> /// <param name="grid"></param> /// <param name="e"></param> public static void Delete(GridView grid, GridViewDeleteEventArgs e) { Command com = new Command(); XmlDocument doc = new XmlDocument(); doc.Load(com.XmlFilePath()); XmlNode information = doc.SelectSingleNode("information"); foreach (XmlNode property in information.ChildNodes) { XmlNode node_id = property.FirstChild; if (node_id.InnerText == ((Label)grid.Rows[e.RowIndex].FindControl("Label1")).Text) { property.ParentNode.RemoveChild(property); } } doc.Save(com.XmlFilePath()); } #endregion } }

UserEdit.aspx 文件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserEdit.aspx.cs" Inherits="XmlManager.UserEdit" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>XML管理平臺(用戶版)</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating"> <Columns> <asp:TemplateField HeaderText="編號" > <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="屬性名" HeaderStyle-Width="200px"> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("key") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="屬性值" HeaderStyle-Width="200px"> <EditItemTemplate> <asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("value") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Bind("value") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="說明" HeaderStyle-Width="200px"> <EditItemTemplate> <asp:TextBox ID="txtExplain" runat="server" Text='<%# Bind("explain") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Bind("explain") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" HeaderText="操作" /> </Columns> </asp:GridView> <asp:Button ID="Btn_Down" runat="server" Text="下載配置文件" OnClick="Btn_Down_Click" /> </div> </form> </body> </html>

UserEdit.aspx.cs 文件

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; using System.Data; using System.Data.SqlClient; using System.IO; namespace XmlManager { public partial class UserEdit : System.Web.UI.Page { Command com = new Command(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadGridView(); } } //綁定數據 private void LoadGridView() { this.GridView1.DataSource = Command.LoadDs().Tables[0]; this.GridView1.DataBind(); } //編輯 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; LoadGridView(); } //數據更新 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { Update(e); GridView1.EditIndex = -1; LoadGridView(); } //取消編輯 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; LoadGridView(); } /// <summary> /// 更新xml數據 /// </summary> private void Update(GridViewUpdateEventArgs e) { string id = ((Label)GridView1.Rows[e.RowIndex].FindControl("Label1")).Text; string key = ((Label)GridView1.Rows[e.RowIndex].FindControl("Label2")).Text; string value = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtValue")).Text; string explain = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtExplain")).Text; //Response.Write("<script>alert('" + key+value+explain + "');</script>"); //通過ID獲取信息,然后更改信息 XmlDocument doc = new XmlDocument(); doc.Load(com.XmlFilePath()); XmlNode information = doc.SelectSingleNode("information");//查找出根節點 foreach (XmlNode property in information.ChildNodes) { XmlNode temp_node = property.FirstChild; if (temp_node.InnerText == id) { //第一種方式 //property.RemoveAll(); //XmlElement ele_id = doc.CreateElement("id"); //ele_id.InnerText = id; //property.AppendChild(ele_id); //另外三個屬性如上 //第二種方式 property.ChildNodes[1].InnerText = key; property.ChildNodes[2].InnerText = value; property.ChildNodes[3].InnerText = explain; doc.Save(com.XmlFilePath()); break; } } } //流方式下載 protected void Btn_Down_Click(object sender, EventArgs e) { string fileName = "user.xml";//客戶端保存的文件名 string filePath = com.XmlFilePath();//下載的路徑 //以字符流的形式下載文件 FileStream fs = new FileStream(filePath, FileMode.Open); byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); Response.ContentType = "application/octet-stream";//設置輸出流類型――二進制 //通知瀏覽器下載文件而不是打開 Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } } }

test.xml 文件

<?xml version="1.0" encoding="utf-8"?> <information> <property> <id>1</id> <key>神獸</key> <value>皮卡丘</value> <explain>來自寵物小精靈</explain> </property> <property> <id>2</id> <key>神獸</key> <value>炎帝</value> <explain>來自寵物小精靈</explain> </property> <property> <id>3</id> <key>神獸</key> <value>水君</value> <explain>來自寵物小精靈</explain> </property> <property> <id>4</id> <key>神獸</key> <value>洛基亞</value> <explain>來自寵物小精靈</explain> </property> <property> <id>5</id> <key>神獸</key> <value>金剛武神獸</value> <explain>來自數碼寶貝</explain> </property> <property> <id>6</id> <key>李逍遙</key> <value>御劍術</value> <explain>來自仙劍一的法術</explain> </property> <property> <id>7</id> <key>李逍遙</key> <value>萬劍訣</value> <explain>來自仙劍一的法術</explain> </property> </information>


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 看一级特黄a大片日本片 | 精品a级片 | 日本成人不卡视频 | 国产精品久久久久久久午夜片 | 成人免费观看视频久爱网 | 日本高清免费视频色www | 一二三四在线手机观看视频 | 国产极品美乳尤物在线观看 | 另类小说图片综合网 | 亚洲 欧美 精品 | 欧美一区视频 | 国产婷婷丁香久久综合 | 久久91精品国产91久久 | 欧美在线观看一区 | 亚洲免费观看视频 | 欧美午夜视频在线 | 国产精品久久久久国产精品 | 天天躁夜夜燥2021 | 亚洲看片| 欧美性xxxx | 日韩欧美视频一区 | 狠狠躁天天躁夜夜躁夜天战 | 午夜在线网站 | 亚洲线精品一区二区三区 | 亚洲一区二区三区久久久久 | 亚洲成人免费 | 欧美一级性生活视频 | 欧美色综合网站 | 91精品国产综合久久久久久 | 精品国产一区二区二三区在线观看 | 亚洲欧美视频一区二区三区 | 中国jizz18免费 | 午夜视频免费在线 | 国产精品网站 夜色 | 最近中文字幕视频 | 日韩精品欧美激情亚洲综合 | 在线看黄网址 | 免费h网站在线观看 | 真人性做爰aa毛片免费视频观看 | 欧美黑人巨大xxxx猛交 | 欧美日韩中文字幕 |