ASP.NET TreeView 의 XML 데이터 원본 바 인 딩 인 스 턴 스 코드 구현

TreeView 컨트롤 은 XML 문 서 를 데이터 원본 으로 사용 하고 XML 문서 의 계층 구조 에 따라 노드 를 표시 할 수 있 습 니 다.한편,XML 문서 의 접근 은 XmlDataSource 컨트롤 로 이 루어 집 니 다.XmlDataSource 컨트롤 의 DataFile 속성 에서 XML 문서 경 로 를 지정 한 다음 TreeView 컨트롤 에서 XML 문서 의 노드 와 대응 하 는 관 계 를 설정 합 니 다.이 예제 에 서 는 TreeView 컨트롤 을 XML 데이터 원본 에 연결 하 는 방법 을 보 여 줍 니 다.
기술 요점 은 TreeView 컨트롤 을 XML 데이터 소스 에 연결 하 는 기술 요점 은 다음 과 같다.
XmlDataSource 컨트롤 을 사용 하여 XML 문서 에 접근 할 수 있 습 니 다.
TreeView 컨트롤 의 DataBindings 속성 에서 노드 와 XML 문서 의 대응 관 계 를 지정 합 니 다.
실현 절차
(1)VS 2008 에'TreeView Sample 2'라 는 이름 의 ASP.NET 사 이 트 를 만 듭 니 다.
(2)'TreeViewControl.aspx'라 는 페이지 를 추가 하고 이 페이지 를 시작 페이지 로 설정 합 니 다.
(3)"AppData 폴 더 에 XML 문 서 를 만 들 고'XML file.xml'이 라 고 명명 합 니 다.이 문 서 는 연락처,지역,담당자 등 3 층 구 조 를 포함 합 니 다.코드 는 아래 와 같다.

<?xml version="1.0" encoding="utf-8" ?>
<contact name=" ">
<genre name=" ">
<person Text=" ">
<name>
</name>
<sex>
</sex>
<age>
25</age>
<address>
</address>
</person>
<person Text=" ">
<name>
</name>
<sex>
</sex>
<age>
28</age>
<address>
</address>
</person>
</genre>
<genre name=" ">
<person Text=" ">
<name>
</name>
<sex>
</sex>
<age>
30</age>
<address>
</address>
</person>
</genre>
</contact>
(4)도구 상자 에서 TreeView 컨트롤 과 XmlDataSource 컨트롤 디자인 페이지 를 선택 하고 XmlDataSource 컨트롤 DataFile 속성 을"~/app"로 설정 합 니 다.Data/XMLfile.xml",TreeView 컨트롤 의 DataSourceID 속성 을"XmlDataSource 1"로 설정 합 니 다.
(5)페이지 를 처음 불 러 올 때 TreeNodeBinding 대상 을 통 해 노드 와 XML 문서 가 연 결 된 대응 관 계 를 프로 그래 밍 방식 으로 추가 합 니 다(디자이너 로 지정 할 수도 있 습 니 다).코드 는 아래 와 같다.

<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TreeView1.ShowLines = true;
//
TreeNodeBinding contact = new TreeNodeBinding();
contact.DataMember = "contact";//
contact.ValueField = "name";//
this.TreeView1.DataBindings.Add(contact);
TreeNodeBinding genre = new TreeNodeBinding();
genre.DataMember = "genre";// " "
genre.ValueField = "name";
this.TreeView1.DataBindings.Add(genre);
TreeNodeBinding person = new TreeNodeBinding();
person.DataMember = "person";// " "
person.ValueField = "Text";
this.TreeView1.DataBindings.Add(person);
TreeNodeBinding name = new TreeNodeBinding();
name.DataMember = "name";// " "
name.ValueField = "#InnerText";
this.TreeView1.DataBindings.Add(name);
TreeNodeBinding sex = new TreeNodeBinding();
sex.DataMember = "sex";// " "
sex.ValueField = "#InnerText";
this.TreeView1.DataBindings.Add(sex);
TreeNodeBinding age = new TreeNodeBinding();
age.DataMember = "age";// " "
age.ValueField = "#InnerText";
this.TreeView1.DataBindings.Add(age);
TreeNodeBinding address = new TreeNodeBinding();
address.DataMember = "address";// " "
address.ValueField = "#InnerText";
this.TreeView1.DataBindings.Add(address);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView XML </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="~/App_Data/XMLFile.xml">
</asp:XmlDataSource>
</div>
<asp:TreeView ID="TreeView1" runat="server"
DataSourceID="XmlDataSource1">
</asp:TreeView>
</form>
</body>
</html>
(6)Ctrl+F5 조합 키 를 눌 러 프로그램 을 실행 하고,실행 결 과 는 다음 그림 과 같 습 니 다.

원본 프로그램 해독
(1)TreeNodeBinding 류 는 TreeView 컨트롤 에서 데이터 항목 과 이 데이터 항목 이 연 결 된 노드 간 의 관 계 를 정의 합 니 다.이러한 종류의 DataMember 속성 은 노드 에 표 시 된 데이터 원본 이 XML 에 대응 하 는 노드 를 지정 합 니 다.ValueField 속성 은 TreeNode 대상 의 Value 속성 에 대응 합 니 다.
(2)TreeNodeBinding 클래스 의 Text 속성 은 사용자 에 게 표시 할 텍스트 를 지정 합 니 다.이 속성 이 지정 되 지 않 으 면 기본적으로 ValueField 속성 과 같 습 니 다.
(3)TreeView 컨트롤 의 DataSourceID 속성 은 데이터 원본 컨트롤 원본 ID 를 지정 합 니 다.

좋은 웹페이지 즐겨찾기