시스템 사용;
System.Collections.Generic 사용;
System.Linq 사용;
System.Web 사용;
System.Web.UI 사용;
System.Web.UI.WebControls 사용;
System.Data.Linq 사용;
System.Xml 사용;
System.Xml.Linq 사용;
namespace WebApplication3 {
public 부분 클래스 WebForm1: System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
int id = Convert.ToInt32(Request["parentID "]);
GetXML(id);
}
공개 IList < 제품 > GetList() {
새 목록 반환 < 제품 > () {
새 제품() {
Id = 1,
ParentId = 0,
HasChild = 1,
Name = "aaaaa"
},
새 제품 () {
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,
이름 = "eeeeee4"
},
새 제품() {
Id = 6,
ParentId = 3,
HasChild = 0,
이름 = "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,
이름 = "yyyyyyyy9"
}
};
} /// <요약>
/// 通过父节点读取子节点并且拼接成xml给前台
///
///
public void GetXML(int parentId) {
List
list = GetList().Where(x => x.ParentId == parentId).ToList();
XElement xElement = new XElement("textTree");
foreach(목록의 제품 p) {
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 = "텍스트/xml";
xdocument.Save(Response.OutputStream);
응답.끝();
}
}
public class Product {
public int Id{set;get;}
public int ParentId{set;get;}
public int HasChild{set;get; }
공용 문자열 이름{set;get;}
}}
思路很简单,后台利用xml送往前台遇过jquery接收处理拼接ul,
li原理(利용 < 리 > 中嵌套 < ul > 적방법,局部读取一节点下的所有直属子节点,每次点击读取,读取过的话,则进入GetDisplayOrNot()방식법判断显示및隐藏节点)html代码: < 본체 >