ASP.NET - TreeView
设置节点图片 :
- 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的更多相关文章
- asp .Net TreeView实现数据绑定和事件响应
最近做了一个图书馆管理系统,其中要实现中图法分类号查询,因为初学asp ,感觉还有点难度, 第一步:数据库文件 第二步 向界面中拖进TreeView控件 第三步添加事件 下面是cs文件代码 //Tre ...
- asp 使用TreeView控件
这段代码为了使用 TreeNodeCheckChanged 事件,会有回刷新的效果: 不喜欢的可查看改进版,利用js控制选择操作,无界面刷新, “http://www.cnblogs.com/GoCi ...
- asp.net treeview 异步加载
在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败, 为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView. 在Tre ...
- ASP.NET - TreeView 增删
效果: 前端代码: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Si ...
- asp.net treeview 总结
网上关于Treeview的代码虽然多 但是都是很乱 实用性和正确性也不是很好 只好自己写一套了,时间比较紧张 性能可能还需调整 以用户组织的一个实际例子来讲诉Treeview的用法吧 组织表结构: 用 ...
- 转:asp.net TreeView CheckChanged 事件浅谈
http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...
- asp.net TreeView控件绑定数据库显示信息
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- asp.net TreeView与XML配合使用v1.1
刚我在做Tree view 绑定时自己摸索了一下,网上有人说TreeView绑定数据源,用什么递归绑定啥的,我不想看了,就自己试着写了一个 我是这样做的,如果有什么问题请大神指导,我是菜鸟额.. 1: ...
- ASP.NET - TreeView控件,只操作最后一级节点
效果: 使用母板页进行,左右页面进行跳转. 绑定TreeView控件:http://www.cnblogs.com/KTblog/p/4792302.html 主要功能: 点击节点的时候,只操作最后一 ...
随机推荐
- SGU 183. Painting the balls( dp )
dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j) 令f(i, j) = min{dp(i ...
- 【centos6 , 6】linux 查看帮助文档:
1. 使用 命令 -h 或 命令 --help , 例: ls -h 2. man命令 : man 命令 例:man ls 3.info命令: ...
- QGraphicsView中选中QGraphicsPathItem使之不出现虚线框
绘制一条贝赛尔曲线,当选中该曲线时,显示其控制点并把控制点和起始点连结起来,从而可以清晰的显示曲线的参数. # -*- coding: utf-8 -*-from PyQt4 import QtGui ...
- 【Demo 0025】注册/反注册窗体类RegisterClassEx/UnregisterClass
所有窗体在创建前都必须注册窗体类,只有注册的窗体类才被系统认知并允许实例化,换句话说通过注册告诉进程窗体管理器此类窗体的属性如: 背景色,窗体上的鼠标样式以及窗体事件处理函数等; 有一些控件类系统自 ...
- android Bitmap围绕一个点进行旋转
在项目中需要使用定位功能,也就是一个点围绕一个圆心进行旋转,查看了canvas的函数也就只有一个 canvas.drawBitmap(bitmap, matrix, paint)通过使用Matrix来 ...
- [置顶] c# datagridview‘s learn
c# 一串数字“1122331111155”,要输出到DataGridview控件上,但是要逐个数字读取,如果上一个数字与下一个相同,则排成一列,不相同,则另外排成一列.如“11223311111 ...
- Eclipse中JBOSS5.1无法启动的问题解决办法
今天在Eclipse中启动JBoss 5.1时遇到这样的一个错误: …… ERROR [AbstractKernelController] Error installing to Instantiat ...
- uart串口协议
uart串口协议 /* USART Word Length ---------------------------------------------------------*/ US ...
- [置顶] Android源码分析-点击事件派发机制
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17339857 概述 一直想写篇关于Android事件派发机制的文章,却一直没 ...
- vc根据域名获取IP地址 gethostbyname()函数
以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数 int WSAStartup ( ...