asp.net代码练习 work043 TreeView的使用

258 篇文章 2 订阅

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>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值