ASP.NET實(shí)現(xiàn)TreeView的XML數(shù)據(jù)源綁定實(shí)例代碼
TreeView控件可以使用XML文檔作為數(shù)據(jù)源,根據(jù)XML文檔的層次結(jié)構(gòu)顯示節(jié)點(diǎn)。而XML文檔的訪問由XmlDataSource控件來完成,從XmlDataSource控件的DataFile屬性中指定XML文檔路徑,然后在TreeView控件中設(shè)置與XML文檔中的節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。本示例將演示如何把TreeView控件綁定到XML數(shù)據(jù)源。
技術(shù)要點(diǎn)
把TreeView控件綁定到XML數(shù)據(jù)源的技術(shù)要點(diǎn)如下。
使用XmlDataSource控件提供對(duì)XML文檔的訪問。
在TreeView控件的DataBindings屬性中指定節(jié)點(diǎn)與XML文檔的對(duì)應(yīng)關(guān)系。
實(shí)現(xiàn)步驟
(1)在VS2008中創(chuàng)建一個(gè)ASP.NET網(wǎng)站,命名為“TreeViewSample2”。
(2)添加一個(gè)頁(yè)面,命名為“TreeViewControl.aspx”,并把這個(gè)頁(yè)設(shè)置為起始頁(yè)。
(3)在“App_Data”文件夾中創(chuàng)建一個(gè)XML文檔,命名為“XMLFile.xml”,該文檔包含三層結(jié)構(gòu):聯(lián)系人、地區(qū)和負(fù)責(zé)人。代碼如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<contact name="聯(lián)系人">
<genre name="華南地區(qū)">
<person Text="負(fù)責(zé)人">
<name>
張三</name>
<sex>
男</sex>
<age>
25</age>
<address>
廣州市黃浦區(qū)</address>
</person>
<person Text="負(fù)責(zé)人">
<name>
李四</name>
<sex>
男</sex>
<age>
28</age>
<address>
佛山市南海區(qū)</address>
</person>
</genre>
<genre name="華北地區(qū)">
<person Text="負(fù)責(zé)人">
<name>
王五</name>
<sex>
男</sex>
<age>
30</age>
<address>
北京市海淀區(qū)</address>
</person>
</genre>
</contact>
(4)從工具箱選擇TreeView控件和XmlDataSource控件設(shè)計(jì)頁(yè)面,把XmlDataSource控件DataFile屬性設(shè)置成“~/App_Data/XMLFile.xml”,并把TreeView控件的DataSourceID屬性設(shè)為“XmlDataSource1”。
(5)在首次加載頁(yè)面時(shí),用編程的方式通過TreeNodeBinding對(duì)象添加節(jié)點(diǎn)與XML文檔綁定的對(duì)應(yīng)關(guān)系(也可以使用設(shè)計(jì)器指定)。代碼如下所示。
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TreeView1.ShowLines = true;
//以下是添加節(jié)點(diǎn)與數(shù)據(jù)源綁定的對(duì)應(yīng)關(guān)系
TreeNodeBinding contact = new TreeNodeBinding();
contact.DataMember = "contact";//指定綁定的成員
contact.ValueField = "name";//取值的字段
this.TreeView1.DataBindings.Add(contact);
TreeNodeBinding genre = new TreeNodeBinding();
genre.DataMember = "genre";//添加與"地區(qū)"綁定
genre.ValueField = "name";
this.TreeView1.DataBindings.Add(genre);
TreeNodeBinding person = new TreeNodeBinding();
person.DataMember = "person";//添加與"負(fù)責(zé)人"綁定
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組合鍵運(yùn)行程序,運(yùn)行結(jié)果下圖所示。

源程序解讀
(1)TreeNodeBinding類在TreeView控件中定義數(shù)據(jù)項(xiàng)與該數(shù)據(jù)項(xiàng)綁定到的節(jié)點(diǎn)之間的關(guān)系。該類的DataMember屬性指定在節(jié)點(diǎn)顯示的數(shù)據(jù)源對(duì)應(yīng)XML的節(jié)點(diǎn)。ValueField屬性對(duì)應(yīng)TreeNode對(duì)象的Value屬性。
(2)TreeNodeBinding類的Text屬性指定向用戶顯示的文本,如果該屬性沒有指定,則默認(rèn)與ValueField屬性相同。
(3)TreeView控件的DataSourceID屬性指定數(shù)據(jù)源控件源ID。
- asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
- ASP.NET MVC DropDownList數(shù)據(jù)綁定及使用詳解
- ASP.NET Ajax級(jí)聯(lián)DropDownList實(shí)現(xiàn)代碼
- asp.net省市三級(jí)聯(lián)動(dòng)的DropDownList+Ajax的三種框架(aspnet/Jquery/ExtJs)示例
- (asp.net c#)DropDownList綁定后顯示對(duì)應(yīng)的項(xiàng)的兩種方法
- 打造基于jQuery的高性能TreeView(asp.net)
- 關(guān)于ASP.NET中TreeView用法的一個(gè)小例子
- ASP.NET使用TreeView顯示文件的方法
- ASP.NET中使用TreeView顯示文件的方法
- ASP.NET中 ListBox列表框控件的使用方法
- ASP.NET中DropDownList和ListBox實(shí)現(xiàn)兩級(jí)聯(lián)動(dòng)功能
- asp.net中ListBox 綁定多個(gè)選項(xiàng)為選中及刪除實(shí)現(xiàn)方法
- Asp.net treeview實(shí)現(xiàn)無限級(jí)樹實(shí)現(xiàn)代碼
- asp.net實(shí)現(xiàn)DropDownList,TreeView,ListBox的無限極分類目錄樹
相關(guān)文章
ASP.NET導(dǎo)出Excel打開時(shí)提示:與文件擴(kuò)展名指定文件不一致解決方法
ASP.NET導(dǎo)出Excel,打開時(shí)提示“您嘗試打開文件'XXX.xls'的格式與文件擴(kuò)展名指定文件不一致” 很是郁悶,于是搜集了一些解決方法,感興趣的朋友可以了解下2013-01-01
使用HttpClient增刪改查ASP.NET Web API服務(wù)
這篇文章介紹了使用HttpClient增刪改查ASP.NET Web API服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作
眾所周知斷點(diǎn)對(duì)于Visual Studio調(diào)試過程是十分重要的,斷點(diǎn)的設(shè)置也是為了更好的進(jìn)行調(diào)試。下面這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作的相關(guān)資料,需要的朋友可以參考下2018-09-09
關(guān)于ASP.NET中TreeView用法的一個(gè)小例子
下面是一個(gè)Treeview動(dòng)態(tài)的綁定3層深度的樹的代碼,有需要的朋友可以參考一下2013-12-12

