using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Linq;
using System.Xml;
using System.Xml.Linq;
namespace WebApplication3 {
public partial class WebForm1: System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
int id = Convert.ToInt32(Request["parentID"]);
GetXML(id);
}
public IList < Product > GetList() {
return new List < Product > () {
new Product() {
Id = 1,
ParentId = 0,
HasChild = 1,
Name = "aaaaa"
},
new Product() {
Id = 2,
ParentId = 1,
HasChild = 1,
Name = "bbbb1"
},
new Product() {
Id = 3,
ParentId = 2,
HasChild = 0,
Name = "ccccc2"
},
new Product() {
Id = 4,
ParentId = 2,
HasChild = 0,
Name = "ddddd3"
},
new Product() {
Id = 5,
ParentId = 1,
HasChild = 0,
Name = "eeeeee4"
},
new Product() {
Id = 6,
ParentId = 3,
HasChild = 0,
Name = "ffffff5"
},
new Product() {
Id = 7,
ParentId = 4,
HasChild = 0,
Name = "ggggggg6"
},
new Product() {
Id = 8,
ParentId = 7,
HasChild = 0,
Name = "hhhhhhh7"
},
new Product() {
Id = 9,
ParentId = 0,
HasChild = 0,
Name = "jjjjjjj8"
},
new Product() {
Id = 10,
ParentId = 0,
HasChild = 0,
Name = "yyyyyyyy9"
}
};
} /// <summary>
/// 通過父節點讀取子節點並且拼接成xml給前台
/// </summary>
/// <param name="parentId"></param>
public void GetXML(int parentId) {
List<Product> list = GetList().Where(x => x.ParentId == parentId).ToList();
XElement xElement = new XElement("textTree");
foreach (Product p in list) {
xElement.Add(new XElement("value", new XAttribute("id", p.Id),p.Name));
}
xElement.Save("d:\kissnana.xml");
XmlDocument xdocument = new XmlDocument();
xdocument.Load("d:\kissnana.xml");
Response.ContentType = "text/xml";
xdocument.Save(Response.OutputStream);
Response.End();
}
}
public class Product {
public int Id{set;get;}
public int ParentId{set;get;}
public int HasChild{set;get;}
public string Name{set;get;}
}}
思路很簡單,後台利用xml送往前台通過jquery接收處理拼接ul,
li原理(利用 < li > 中嵌套 < ul > 的方式,局部讀取一節點下的所有直屬子節點,每次點擊讀取,讀取過的話,則進入GetDisplayOrNot()方法判斷顯示和隱藏節點)html代碼: < body > <form id = "form1"
runat = "server" > <input type = "button"
value = "text"
onclick = "LoadXml(0)" / ><div id = "root" > </div>
</form >
</body>