webform1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="work043.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" AutoGenerateDataBindings="false" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"></asp:TreeView>
</div>
</form>
</body>
</html>
webform1.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace work043
{
public partial class WebForm1 : System.Web.UI.Page
{
System.Xml.XmlDocument xmlDoc;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MakeParentNode();
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
Response.Write("节点的文本:" + TreeView1.SelectedNode.Text + "<br>");
Response.Write("节点的值:" + TreeView1.SelectedNode.Value + "<br>");
Response.Write("节点的路径:" + TreeView1.SelectedNode.ValuePath + "<br>");
Response.Write("节点的数据路径:" + TreeView1.SelectedNode.DataPath + "<br>");
}
//建立父节点
protected void MakeParentNode()
{
//树,清空
TreeView1.Nodes.Clear();
//实例化xml文档
xmlDoc = new System.Xml.XmlDocument();
//服务器路径下,加载文档
xmlDoc.Load(Server.MapPath("area.xml"));
//获取根节点Area下的节点
System.Xml.XmlNodeList nodeList = xmlDoc.SelectSingleNode("Area").ChildNodes;
//新建顶点
TreeNode topNode = new TreeNode();
topNode.Text = "Area";
topNode.Value = "-1";
topNode.Expanded = true;
//顶点加入树
TreeView1.Nodes.Add(topNode);
//声明xml元素点
System.Xml.XmlElement element = null;
TreeNode treeNode = null;
foreach (System.Xml.XmlNode node in nodeList)
{
//循环取节点,转换成元素
element = (System.Xml.XmlElement)node;
treeNode = new TreeNode();
treeNode.Text = element.GetAttribute("Name");
treeNode.Value = element.GetAttribute("ID");
treeNode.Expanded = true;
//将生成的节点,加入树顶点,作为节点
topNode.ChildNodes.Add(treeNode);
//获取子节点
MakeChildNode(node.ChildNodes, treeNode);
}
}
//获取子节点
protected void MakeChildNode(System.Xml.XmlNodeList nList,TreeNode tNode)
{
System.Xml.XmlElement element = null;
TreeNode subNode = null;
foreach (System.Xml.XmlNode node in nList)
{
element = (System.Xml.XmlElement)node;
subNode = new TreeNode();
subNode.Text = element.GetAttribute("Name");
subNode.Value = element.GetAttribute("ID");
subNode.Expanded = true;
tNode.ChildNodes.Add(subNode);
//递归调用,形成子节点
MakeChildNode(node.ChildNodes, subNode);
}
}
}
}
area.xml
<?xml version="1.0" encoding="utf-8" ?>
<Area>
<Province ID="1" Name="北京市"/>
<Province ID="2" Name="天津市"/>
<Province ID="3" Name="上海市"/>
<Province ID="4" Name="重庆市"/>
<Province ID="5" Name="湖北省">
<City ID="51" Name="武汉市"></City>
<City ID="52" Name="黄冈市"></City>
<City ID="53" Name="荆州市"></City>
<City ID="54" Name="武穴市"></City>
<City ID="55" Name="十堰市"></City>
<City ID="56" Name="黄石市"></City>
</Province>
<Province ID="6" Name="广东省">
<City ID="61" Name="佛山市"></City>
<City ID="62" Name="广州市"></City>
</Province>
<Province ID="7" Name="陕西省">
<City ID="71" Name="西安市"></City>
<City ID="72" Name="延安市"></City>
</Province>
</Area>