XmL文件代码:

<?xml version="1.0" encoding="utf-8" ?>
<Area>
<Province iAreaID="" cAreaName="北京市"/>
<Province iAreaID="" cAreaName="上海市"/>
<Province iAreaID="" cAreaName="天津市"/>
<Province iAreaID="" cAreaName="重庆市"/>
<Province iAreaID="" cAreaName="湖北省">
<City iAreaID="" cAreaName="武汉市"/>
<City iAreaID="" cAreaName="黄冈市"/>
<City iAreaID="" cAreaName="荆州市"/>
<City iAreaID="" cAreaName="武穴市"/>
<City iAreaID="" cAreaName="十堰市"/>
<City iAreaID="" cAreaName="黄石市"/>
</Province>
<Province iAreaID="" cAreaName="河北省">
<Province iAreaID="" cAreaName="石家庄市"/>
<Province iAreaID="" cAreaName="唐山市"/>
</Province>
<Province iAreaID="" cAreaName="山西省">
<Province iAreaID="" cAreaName="太原市"/>
<Province iAreaID="" cAreaName="大同市"/>
</Province>
</Area>

aspx前代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="treeAreaList" runat="server"
AutoGenerateDataBindings="false" OnSelectedNodeChanged="Tree_SelectedNodeChanged"></asp:TreeView>
</div>
</form>
</body>
</html>

CS代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml; namespace WebApplication1.复合控制和模板页
{
public partial class TreeView控件 : System.Web.UI.Page
{
XmlDocument xmlDoc;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
MakeParentNode();
}
}
#region protected void MakeParentNode()
{
treeAreaList.Nodes.Clear();
xmlDoc=new XmlDocument();
xmlDoc.Load(Server.MapPath("area.xml "));//动态加载xml文档
XmlNodeList nodeList=xmlDoc.SelectSingleNode("Area").ChildNodes;//获取子节点
//定义Area节点
TreeNode topNode=new TreeNode();//定义顶级节点
topNode.Text="area";
//tn.Value="-1";
topNode.Expanded=true; treeAreaList.Nodes.Add(topNode);//添加”区域“父节点
XmlElement element=null;
TreeNode treeNode=null;
//遍历区域下的所有省和直辖市
foreach (XmlNode node in nodeList)
{
element=(XmlElement)node;
treeNode=new TreeNode();
treeNode.Text=element.GetAttribute("cAreaName");
//在树控件上显示省或直辖市
treeNode.Value=element.GetAttribute("iAreaID");
//获取节点值
treeNode.Expanded=true;
topNode.ChildNodes.Add(treeNode);
MakeChildNode(node.ChildNodes,treeNode);
}
}
#endregion
#region
protected void MakeChildNode( XmlNodeList nodeList,TreeNode treeNode)
{
XmlElement element = null;
TreeNode subTreeNode = null;
foreach (XmlNode node in nodeList)
{
element = (XmlElement)node;
subTreeNode = new TreeNode();
subTreeNode.Text = element.GetAttribute("cAreaName");
//在树控件上显示省或直辖市
subTreeNode.Value = element.GetAttribute("iAreaID");
//获取节点值
subTreeNode.Expanded = true;
treeNode.ChildNodes.Add(subTreeNode);
MakeChildNode(node.ChildNodes, subTreeNode);
}
}
#endregion
protected void Tree_SelectedNodeChanged(object sender, EventArgs e)
{ Response.Write("节点的值:" + treeAreaList.SelectedNode.Value + "<br/>");
Response.Write("节点的路径:" + treeAreaList.SelectedNode.ValuePath + "<br/>");
Response.Write("节点的数据路径:" + treeAreaList.SelectedNode.DataPath + "<br/>");
}
}
}

显示效果:

TreeView控件例子的更多相关文章

  1. VB TreeView控件使用详解

    来源:http://www.newxing.com/Tech/Program/VisualBasic/TreeView_587.html 三小时快速掌握TreeView树状控件的使用.能不能掌握控件的 ...

  2. Winform TreeView控件技巧

    在开发的时候经常使用treeview控件来显示组织结构啊,目录结构啊,通常会结合属性checkedboxs,来做选中,取消的操作下面是一个选中,取消的小例子,选中节点的时候,如果节点存在子节点,可以选 ...

  3. 如何:使用TreeView控件实现树结构显示及快速查询

    本文主要讲述如何通过使用TreeView控件来实现树结构的显示,以及树节点的快速查找功能.并针对通用树结构的数据结构存储进行一定的分析和设计.通过文本能够了解如何存储层次结构的数据库设计,如何快速使用 ...

  4. VB TreeView控件使用详解(有趣的示例)

    第一小时:学习直接用代码将数据填充到树控件中. 为什么要先学习直接用代码将数据填充到树控件中?因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将 ...

  5. WPF中TreeView控件数据绑定和后台动态添加数据(二)

    写在前面:在(一)中,介绍了TreeView控件MVVM模式下数据绑定的方法.在这篇文章中,将总结给节点添加事件的方法,这样说有些不对,总之实现的效果就是点击某个节点,将出现对应于该节点的页面或者数据 ...

  6. TreeView控件使用

    treeView1.SelectedNode = treeView1.Nodes[0];  //选中当前treeview控件的根节点为当前节点添加子节点:  TreeNode tmp; tmp = n ...

  7. 基于Treeview控件遍历本地磁盘

    一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...

  8. Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

    首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Wind ...

  9. asp TreeView控件的使用

    相对于之前发过一个TreeView控件的使用方法 本次利用js操作,页面无刷新,性能提高 Css编码可能时我的模板页样式被继承下来,导致页面变乱,不需要的可以去掉 前台 <style> . ...

随机推荐

  1. prototype演变

    setp1 var Person = function () {}; //构造器 var p = new Person(); setp1 演变: var Person = function () {} ...

  2. .Net 数组去除重复项

    string str = "1/1/12/13/15/16/15//"; ] { '/' }, StringSplitOptions.RemoveEmptyEntries); Li ...

  3. jQuery Mobile组件

    一.页面 jQuery Mobile 应用了 HTML5 标准的特性,在结构化的页面中完整的页面结构分为header.content.footer 这三个主要区域. 在body 中插入内容块: < ...

  4. android listview 重用view导致的选择混乱问题

    20150526 listview是常用的控件,经常用自定义的adapter,为了提高显示效率,常利用view的重用方式防止重绘,但因为重用利用的是旧的view,常导致显示的数据会由于position ...

  5. vsvim _vsvimrc 设置(转)

    c_joewang的专栏 (转) vsvim安装到vs2010后可以使用绝大部分原生vim的编辑功能,包括宏录制,也可以通过配置设置键盘映射,关于支持的编辑功能等可以参考上面链接去查看相关文档. Vi ...

  6. python 关于dict的一些总结

    总结了一些关于字典的小技巧或者注意的地方. 使用zip创建字典 创建字典有以下三种方法 dict(a=1, b=2, c=2) dict([(a,1), (b,2), (c,3)]) dict({a: ...

  7. AngularJS bootStraping

    看这个 http://www.dotnet-tricks.com/Tutorial/angularjs/5aWL261214-Understanding-AngularJS-Bootstrap-Pro ...

  8. Groovy中那些神奇注解之Memoized

    临近年关手头比较闲,去看了一下Groovy的官方文档,才发现原来Groovy中带了那么多的注解,很多注解带来的效果,有时候让人感觉“这不是在变魔法吧”. 个人很喜欢Groovy,写不成Ruby,Gro ...

  9. CCNA实验(10) -- Access List

    使用包过滤技术在路由器上读取三层及四层报头的信息如源地址.目的地址.源端口.目的端口根据预先定义好的规则对包进行过滤 三种类型:1.标准ACL:表号范围1-99或1300-1999.仅对源IP地址进行 ...

  10. Android Studio配置(build优化和as优化)

    首先是用户目录下的C:\Users\用户名\.gradle\文件下创建gradle.properties文件 输入 org.gradle.daemon=trueorg.gradle.configure ...