欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET实现TreeView的XML数据源绑定实例代码

程序员文章站 2024-02-29 10:12:28
treeview控件可以使用xml文档作为数据源,根据xml文档的层次结构显示节点。而xml文档的访问由xmldatasource控件来完成,从xmldatasource控...

treeview控件可以使用xml文档作为数据源,根据xml文档的层次结构显示节点。而xml文档的访问由xmldatasource控件来完成,从xmldatasource控件的datafile属性中指定xml文档路径,然后在treeview控件中设置与xml文档中的节点的对应关系。本示例将演示如何把treeview控件绑定到xml数据源。

技术要点
把treeview控件绑定到xml数据源的技术要点如下。

使用xmldatasource控件提供对xml文档的访问。

在treeview控件的databindings属性中指定节点与xml文档的对应关系。


实现步骤

(1)在vs2008中创建一个asp.net网站,命名为“treeviewsample2”。

(2)添加一个页面,命名为“treeviewcontrol.aspx”,并把这个页设置为起始页。

(3)在“app_data”文件夹中创建一个xml文档,命名为“xmlfile.xml”,该文档包含三层结构:联系人、地区和负责人。代码如下所示。

复制代码 代码如下:

<?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属性设为“xmldatasource1”。

(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组合键运行程序,运行结果下图所示。

ASP.NET实现TreeView的XML数据源绑定实例代码

源程序解读

(1)treenodebinding类在treeview控件中定义数据项与该数据项绑定到的节点之间的关系。该类的datamember属性指定在节点显示的数据源对应xml的节点。valuefield属性对应treenode对象的value属性。

(2)treenodebinding类的text属性指定向用户显示的文本,如果该属性没有指定,则默认与valuefield属性相同。

(3)treeview控件的datasourceid属性指定数据源控件源id。