设置节点图片 :

  • Windows资源管理器左侧的树型资源结构图中,各节点都有图片连接,例如磁盘的图片、光盘的图片和文件夹的图片等,使资源的表现更加形象。IEWebControls的TreeView控件也可以为节点链接图片,这时需要利用以下3个属性关联到节点的标准状态(未展开、未选中)、展开状态和选中状态。
  • ImageUrl属性:TreeNode处于标准状态时显示的图片的地址。
  • ExpandImageUrl属性:TreeNode处于展开状态时显示的图片的地址。
  • SelecteImageUrl属性:TreeNode处于选中状态时显示的图片的地址。

动态添加和删除TreeNode节点:

  TreeView控件中的节点若在整个程序的生命期间都是不变的,则可以在程序设计时使用节点编辑器编辑它,或者在页面的HTML标记中手工添加它。也可根据程序运行中数据变化的需要对节点动态进行增减。在后台代码中调用TreeView控件的Nodes集合的Add方法和AddAt方法增加节点,调用Remove方法删除节点。

  • (一)Nodes.Add方法 Nodes.Add方法向控件加入一个节点,增加的节点放在控件的最后面。下段程序可以向控件TreeView1中增加一个新节点: TreeNode newNode=new TreeNode(); newNode.Text="人文科学系"; TreeView1.Nodes.Add(newNode);
  • (二)Nodes.AddAt方法 Nodes.AddAt方法向控件加入节点时,需要指定节点的索引位置,因此可以将节点插入到原有的节点的中间。下段程序插入一个节点到树的开头。 //创建一个新节点 TreeNode newNode=new TreeNode(); newNode.Text="冶金职院"; //添加新节点到Nodes集合中 TreeView1.Nodes.AddAt(0,newNode);
  • (三)Nodes.Remove方法 Nodes.Remove方法从TreeView控件中移除一个节点。下行程序将树中的第二个节点移除。  TreeView1.Nodes.Remove(TreeView1.Nodes[1]); 直接调用TreeView控件的Nodes.Add方法或Nodes.AddAt方法添加的节点都是顶层节点,调用Nodes.Remove方法删除的也是顶层节点,若要将节点插入到任意层次,或者需要删除非顶层的节点则: 需要在调用上述3个方法之前,有一种方法能够分辨出节点的层次出来,这要用到TreeView控件的GetNodeFromIndex()方法。
  • (四)GetNodeFromIndex方法 GetNodeFromIndex方法返回参数索引号所指定的节点的引用。调用的格式为: TreeView1.GetNodeFromIndex("x.y.z…") 其中TreeView1是当前的树型控件,参数x.y.z指明节点的层次,例如”1.2”表示顶层索引号为1,其下一层索引号为2的那个节点。
  • (五)删除非顶层节点 当要删除顶层索引号为1,其下一层索引号为2的那个节点时,可以写如下的代码:    //获取该节点    TreeNode delNode=this.TreeView1.GetNodeFromIndex("1.2"); //删除该节点 delNode.Remove();
  • (六)插入非顶层节点   要在顶层索引号为1,其下一层索引号为2的那个位置插入一个节点时,可以写如下的代码:    //创建一个新节点 TreeNode newNode1=new TreeNode(); newNode1.Text="多媒体教研室"; //获取插入位置的节点节点 TreeNode addNode=this.TreeView1.GetNodeFromIndex("1.2"); //将新节点插入 addNode.Nodes.AddAt(1,newNode1);

从XML文件读取节点数据:

  利用节点编辑器来编辑TreeView控件的节点,只适应于在编程阶段就可预知节点结构的情况。虽然此后可以动态修改节点,也必须由程序代码实现,若节点结构变化的规律与程序代码不符,就必须修改程序代码。 ASP.NET允许将树型控件节点数据编写在一个XML文档中,程序从这个文档读取数据以构造树型控件的节点。若控件节点所代表的资源发生变化时,只需要修改这个XML文档即可,不需要修改程序代码。

  • (一)从XML文档读取树型控件的节点数据 创建一个Web应用程序项目,向页面内拖入一个TreeView控件。打开控件TreeView1的属性窗口,设置控件的节点的ExpandedImageUrl、ImageUrl和SelectedImageUrl属性,这些属性指定当节点展开或选中时的图片地址。
  • (二)编辑节点的XML文件 在VS.NET集成开发环境中,选择菜单“项目(P)→添加新项(W)”,在添加新项对话框右侧的模板框中选择“XML文件”,在名称框中输入XML文件的名称。本例输入名称“XMLTreeViewNode.xml”,然后单击【打开】按钮,就可以切换到XML文件的编辑窗口,编辑文件的内容如下: <?xml version="1.0" encoding="utf-8" ?> <TREENODES> <TreeNode Text="商品总目"> <TreeNode Text="农产品"> <TreeNode Text="水果"></TreeNode> <TreeNode Text="粮食"></TreeNode> </TreeNode> <TreeNode Text="日化产品"><TreeNode Text="洗涤用品"></TreeNode> <TreeNode Text="化妆用品"></TreeNode> </TreeNode> <TreeNode Text="百货"> <TreeNode Text="服装"></TreeNode> <TreeNode Text="鞋帽"></TreeNode> </TreeNode> <TreeNode Text="家电"> <TreeNode Text="冰箱"></TreeNode> <TreeNode Text="洗衣机"></TreeNode> </TreeNode> </TreeNode> </TREENODES>这个XML文档中只允许有一个根标签<TREENODES></TREENODES>,所有的节点标签都必须放在这个根标签之内,标签标记TREENODES必须大写。每个节点标签<TreeNode ></TreeNode>中定义一个节点,节点标签可以嵌套,嵌套层次表明了节点的结构关系。
  • (三)指定TreeView控件的TreeNodeSrc属性 需要指定TreeView控件的TreeNodeSrc属性,以指示TreeView控件的节点数据和结构来自文件。注打开TreeView控件的属性窗口,在TreeNodeSrc属性上指定其值为刚编写的那个文件“XMLTreeViewNode.xml”。
  • (四)控件效果      运行程序,效果如下图。

  

ASP.NET - TreeView的更多相关文章

  1. asp .Net TreeView实现数据绑定和事件响应

    最近做了一个图书馆管理系统,其中要实现中图法分类号查询,因为初学asp ,感觉还有点难度, 第一步:数据库文件 第二步 向界面中拖进TreeView控件 第三步添加事件 下面是cs文件代码 //Tre ...

  2. asp 使用TreeView控件

    这段代码为了使用 TreeNodeCheckChanged 事件,会有回刷新的效果: 不喜欢的可查看改进版,利用js控制选择操作,无界面刷新, “http://www.cnblogs.com/GoCi ...

  3. asp.net treeview 异步加载

    在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败, 为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView. 在Tre ...

  4. ASP.NET - TreeView 增删

    效果: 前端代码: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Si ...

  5. asp.net treeview 总结

    网上关于Treeview的代码虽然多 但是都是很乱 实用性和正确性也不是很好 只好自己写一套了,时间比较紧张 性能可能还需调整 以用户组织的一个实际例子来讲诉Treeview的用法吧 组织表结构: 用 ...

  6. 转:asp.net TreeView CheckChanged 事件浅谈

    http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...

  7. asp.net TreeView控件绑定数据库显示信息

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. asp.net TreeView与XML配合使用v1.1

    刚我在做Tree view 绑定时自己摸索了一下,网上有人说TreeView绑定数据源,用什么递归绑定啥的,我不想看了,就自己试着写了一个 我是这样做的,如果有什么问题请大神指导,我是菜鸟额.. 1: ...

  9. ASP.NET - TreeView控件,只操作最后一级节点

    效果: 使用母板页进行,左右页面进行跳转. 绑定TreeView控件:http://www.cnblogs.com/KTblog/p/4792302.html 主要功能: 点击节点的时候,只操作最后一 ...

随机推荐

  1. 比赛--找丢失的数--解题报告T

    找丢失的数 题目大意: There is a permutation without two numbers in it, and now you know what numbers the perm ...

  2. 我的Python成长之路---第三天---Python基础(13)---2016年1月16日(雾霾)

    五.Python的常用的内置函数 Python为我们准备了大量的内置函数,如下图所示 这里我们只讨论红框内的内置函数 abs(x) 返回一个数的绝对值(模),参数可以是真说或浮点数 >>& ...

  3. Chapter 4.开放-封闭原则

    开放-封闭原则:是说软件实体应该可以扩展,但不可修改. 设计人员必须对于他设计的模块应该对哪种变化封闭做出选择,先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化. 面对需求,对程序的改动是通 ...

  4. 基于visual Studio2013解决算法导论之044最短路径

     题目 最短路径 解决代码及点评 // 26最短路径dijstra.cpp : 定义控制台应用程序的入口点. // #include <iostream> using namespa ...

  5. 自己设计的SSO登录流程图

    这个图上不考虑安全加密.由于本身SSO流程图已经比較复杂了.可能还有问题,欢迎大家拍砖. 1.登录流程图: 2.退出流程图: 3.改进方面: 每一个应用登录后.直接将ticket写入session中, ...

  6. Linux命令之find(一)

    find命令的使用格式为:find options path expressions find命令事实上有两种options,一种是"真正属于自己的",还有一种位于expressi ...

  7. Android PopupWindow显示位置和显示大小

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l1YW41MTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  8. 嵌入式MCU开发群资源

     STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码.它是未来开发stm32系列产品的主流软件,是ST公司的主动原创,可以减轻开发工作,时间和费用.STM32Cube ...

  9. BZOJ 3039: 玉蟾宫( 悬线法 )

    最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...

  10. BZOJ 2330: [SCOI2011]糖果( 差分约束 )

    坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 ------------------------------------ ...