Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only Làm việc với XML Gridview [asp.net - c#] Bài viết giới thiệu đến bạn cách thức làm việc XML , add , edit , delete data gridview xem qua demo để hiểu nội dung viết Giải thích demo: Khi trang web load data load vào gridview , click vào dòng gridview data bind vào textbox , sau sửa , xóa data update lại database Điều đặc biệt ở chỗ file chứa data có đuôi dạng xml , data lưu access hay sql server Các bước thực : 1: Thiết kế giao diện : (như hình demo trên) Kéo vào trang web gridview đặt tên Gridview1 label ghi First Name , Last Name , Email , PHone textbox : txtFname, txtLname,txtEmail,txtPhone button : btnAdd , btnModify, btnDElete, btnClear Click vào dấu tam giác nhỏ gridview click edit Columns click tiếp Command Filed chọn Select click OK để hoàn tất ( Mục đích add thêm nút select Gridview mà ) 2: Tạo file data có đuôi xml Ta tạo file data có đuôi xml có liệu muốn thể Gridview, data tùy thuộc vào yêu cầu cụ thể bạn Trong ví dụ file.xml có tên testXML_Q7.xml bao gồm First Name , Last Name , Email , Phone nội dung file cụ thể sau : CVTX 2 Nguyen ds@email.net 2312 CVTX 2 Nguyen ds@email.net 435t345 PA Doan ds@email.net 435t345 Huong Doan ds@email.net 5645654 Hung Le ds@dfbvdfbdf.com 5645654 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only 3: Load file testXML_Q7.xml vào GridView Ta viết code kiện pageLoad : protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack ) { loadXmlData(); } } Để sử dụng lại nên nên viết riêng hàm load data riêng (ví dụ loadXmlData();) Hàm loadXmlData(); có code sau: bạn nhớ add thêm nameSpace vào phần trang : using System.Xml; private void loadXmlData() { DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath(@”testXML_Q7.xml”)); if (ds.Tables.Count > 0) { this.GridView1.DataSource = ds; this.GridView1.DataBind(); } } Đến data load lên Gridview Hãy view với browser FF IE 4: Viết code cho button (edit,add,delete,clear) - Code cho kiện : Select click đúp vào Gridview avf viết code sau protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { a = this.GridView1.SelectedIndex; FindXmlData(a); //gọi hàm FindXmlData } Hàm FindXmlData : private void FindXmlData(int a) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath(@”testXML_Q7.xml”)) ; XmlNodeList xmlnodelist = xmldoc.DocumentElement.ChildNodes; XmlNode xmlnode = xmlnodelist.Item(a); this.txtFname.Text = xmlnode["fname"].InnerText; this.txtLname.Text = xmlnode["lname"].InnerText; this.txtEmail.Text = xmlnode["email"].InnerText; this.txtPhone.Text = xmlnode["phone"].InnerText; } - Code cho button btnClear: protected void btnClear_Click(object sender, EventArgs e) { reset(); } Code cho hàm reset(): Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only private void reset() { this.txtFname.Text = “”; this.txtLname.Text = “”; this.txtEmail.Text = “”; this.txtPhone.Text = “”; } - Code cho btnModify : protected void btnModify_Click(object sender, EventArgs e) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath(@”testXML_Q7.xml”)) ; XmlNode xmlnode = xmldoc.DocumentElement.ChildNodes.Item(a); xmlnode["fname"].InnerText = this.txtFname.Text.Trim(); xmlnode["lname"].InnerText = this.txtLname.Text.Trim(); xmlnode["email"].InnerText = this.txtEmail.Text.Trim(); xmlnode["phone"].InnerText = this.txtPhone.Text.Trim(); xmldoc.Save(Server.MapPath(@”testXML_Q7.xml”)) ; loadXmlData(); } - Code cho btnDelete: protected void btnDelete_Click(object sender, EventArgs e) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath(@”testXML_Q7.xml”)) ; XmlNode xmlnode = xmldoc.DocumentElement.ChildNodes.Item(a); xmlnode.ParentNode.RemoveChild(xmlnode); xmldoc.Save(Server.MapPath(@”testXML_Q7.xml”)) ; loadXmlData(); reset(); } ... FindXmlData(int a) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath(@”testXML_Q7 .xml )) ; XmlNodeList xmlnodelist = xmldoc.DocumentElement.ChildNodes; XmlNode xmlnode = xmlnodelist.Item(a);... sender, EventArgs e) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath(@”testXML_Q7 .xml )) ; XmlNode xmlnode = xmldoc.DocumentElement.ChildNodes.Item(a); xmlnode["fname"].InnerText... xmldoc.Load(Server.MapPath(@”testXML_Q7 .xml )) ; XmlNode xmlnode = xmldoc.DocumentElement.ChildNodes.Item(a); xmlnode.ParentNode.RemoveChild(xmlnode); xmldoc.Save(Server.MapPath(@”testXML_Q7 .xml )) ; loadXmlData(); reset();