TreeView在借书管理系统中的实现与应用
VFP TreeView控件使用详解
VFP TreeView控件使用详解vfptreeview控件使用详解vfptreeview控件使用详解(2)这个控件的使用率也就是很高的,所以我们就必须好好掌控一下了。
在梅子这儿存有一个treeview控件的“畅享系列”。
较好!我也就是把她里面的一些精华封盖下来,给大家太少作表明而已。
如果你想要系统的学一下呢,就之下一个“畅享系列”吧!简单的介绍:treeview控件用以显示信息的分级视图,如同windows里的资源管理器的目录。
treeview控件中的各项信息都存有一个与之有关的node对象。
treeview表明node对象的分层目录结构,每个node对象均由一个label对象和其有关的图形共同组成。
在创建treeview控件后,我们可以进行和卷曲、表明或暗藏其中的节点。
treeview控件通常用以显示文件和目录结构、文档中的类层次、索引中的层次和其他具备分层目录结构的信息。
treeview控件有3个属性页,general页、font页、picture页。
treeview控件属性1。
linestyle属性该属性设置本项控件中node对象之间表明的线条类型。
格式:表单.treeview名.linestyle=值值的范围:0-tvwtreelines(缺省)三线显示兄弟节点和父子节点之间的连线1-tvwrootlines根(root)线。
除了上述的连线以外,还表明根目录之间的连线需要注意的是:在设置该属性前,必须设置style属性为treeline(三线)。
2。
style属性该属性返回和设置表现在treeview控件对象中node对象的图形类型和文本类型。
格式:表单.treeview名.style=值值的范围:0-tvwtextonly文本1-tvwpicturetext图象和文本2-tvwplusminustext+/-以及文本3-tvwpluspicturetext+/-、图象以及文本4-tvwtreelinestext连线和文本5-tvwtreelinespicturetext连线、图象和文本6-tvwtreelinesplusminuetext连线、+/-和文本7-tvwtreelinesplusminuspicturetext(缺省)连线、+/-、图象和文本3。
TreeView控件在C#应用程序中的应用研究
TreeView控件在C#应用程序中的应用研究摘要:详细介绍了使用TreeView控件的图书信息系统多级书目节点动态实现方法,在实现与图书信息数据库的连接后,能够实现一个完整的图书信息管理系统。
关键词:C#;TreeView控件;多级书目节点;图书信息系统在.NET应用程序中,TreeView控件用来显示节点(TreeNode)对象的级层结构,通常用于显示一些有等级结构的信息,例如Windows资源管理器左边显示文件和文件夹的窗口。
本文以简易电子图书信息系统开发为背景,详细论述了C#应用程序中,使用TreeView 控件的电子图书信息系统的多级书目动态生成方法。
1 应用程序界面设计运行VS2010,新建C# Windows应用程序项目。
(1)添加程序窗体,进行属性设置。
(2)添加和设置SplitContainer控件。
在上一步添加的窗体中拖入一个SplitContainer控件,设置相应属性值。
SplitContainer控件是由两个Panel面板和一个Split拆分条组成的复合体,拥有两个面板可以聚合不同区域中的信息(一个面板的选择决定了另一个面板显示的内容)。
(3)添加TreeView控件。
TreeView控件按树形结构来显示标记项的分层集合,每一个标记项用一个TreeNode来表示。
在SplitContainer.Panel1中添加一个TreeView控件,设置其Dock属性为fill。
(4)添加ListView控件。
在SplitContainer.Panel2中添加一个ListView控件,设置其Dock属性为fill。
当选中某一个节点后,在ListView控件中显示对应的信息。
2 程序代码实现创建Access2003数据库,编辑保存多级图书目录节点信息,如图1所示。
(1)导入数据库db1.mdb,使用Using 语句引入OleDb的命名空间,代码如下:图1 书目节点数据库using System.Data.OleDb;(2)数据库的连接字符串代码:String connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";(3)使用Connection对象与数据源建立连接之后,使用Command 对象来对数据源执行查询等各种操作。
treeview用法
treeview用法Treeview一种常见的UI素,用于在显示层次结构的数据。
它通常用来显示目录树状结构,在 Windows统中,它经常被用作文件管理器,让用户可以快速查找和查看文件和文件夹。
在 web用中,Treeview于构建层次结构的菜单,用户使用它可以更加轻松和高效地浏览信息。
Treeview一种常用的控件,也是一种重要的交互元素。
Treeview 一般被用来显示多级树状结构,分级显示文件、文件夹和其他信息,以便用户可以快速找到所需的内容。
Treeview常有两种常见的操作,一是点击节点以展开或收缩节点,以查看其子节点;二是点击节点来查看其具体内容。
Treeview使用比较灵活,它可以应用于各种不同类型的介质上,如 Windows脑、web用等。
在 Windows统中,Treeview被用来作为用户界面的一部分,用户可以在 Treeview 中浏览不同的文件夹,管理文件;在 web用中,Treeview以用来显示和编辑目录结构,构建菜单;在自定义的软件中,Treeview以用来显示应用程序的层次结构,不同的节点可以指向不同的操作。
Treeview实现方式也有很多种。
在 Windows统中,Treeview以通过 Windows API实现,也可以使用可视化控件,如 WPF TreeView 件;对于 web用,可以使用 HTML、CSS JavaScript实现 Treeview,也可以使用 jQuery、Angular者其他基于 JavaScript技术来实现;对于软件程序,可以使用 C #、Java、Python语言来实现 Treeview。
无论是 Windows统、web用还是软件程序,Treeview是一种重要的 UI素,它可以帮助用户更加轻松和高效地浏览和操作信息。
无论你要构造什么样的 Treeview,记住要在设计时考虑到它的易用性,可以丰富 Treeview功能,提升它的用户体验。
C实现树型结构TreeView节点拖拽的简单功能,附全部源码,供有需要的参考
应用软件是否好用就体现在一些细节操作上,开发人员是否考虑到了很多细节,例如一个树形结构的数据若不支持拖拽功能那用起来会很糟糕一些,用户体验也会不太爽,下面就以通用权限管理系统组件源码中的组织机构(部门)管理模块为例子,讲解一下树型结构TreeView节点拖拽的简单功能实现。
其实组织机构管理模块平时不怎么用到拖拽功能,但是往往在数据初始化时为了实现快速输入数据及进行整理调整数据时,往往就非常迫切需要一个灵活的组织机构管理器,当每到年底或者公司进行大的人事调整时也会遇到后台管理员迫切需要拖拽功能的需求,平时组织机构不会有大变动。
软件功能是否好用,往往是体现在最需要折腾数据时是否好用?养兵千日用兵一时,一般没经过磨难的新开发的软件往往会想得不够周到,关键时刻容易掉链子,经不起客户的折腾。
例子程序运行效果如何下:当然在节点拖拽时,需要注意几个事情:1:拖拽时总需要有提示信息比较好,防止误操作后找不到被托摘到哪里去了。
2:父亲节点总不能拖拽到自己的子节点上,那不是死循环或者乱了辈份了不是?为了让TreeView支持拖拽功能,需要注意以下几个属性设置及相应的事件代码。
代码实现参考如下:private void tvOrganize_ItemDrag(object sender, ItemDragEventArgs e){if (this.permissionEdit){// 开始进行拖放操作,并将拖放的效果设置成移动。
this.DoDragDrop(e.Item, DragDropEffects.Move);}}private void tvOrganize_DragEnter(object sender, DragEventArgs e){// 拖动效果设成移动e.Effect = DragDropEffects.Move;}private void tvOrganize_DragDrop(object sender, DragEventArgs e){// 定义一个中间变量TreeNode treeNode;//判断拖动的是否为TreeNode类型,不是的话不予处理if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)){// 拖放的目标节点TreeNode targetTreeNode;// 获取当前光标所处的坐标// 定义一个位置点的变量,保存当前光标所处的坐标点Point point = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));// 根据坐标点取得处于坐标点位置的节点targetTreeNode = ((TreeView)sender).GetNodeAt(point);// 获取被拖动的节点treeNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");// 判断拖动的节点与目标节点是否是同一个,同一个不予处理if (BaseInterfaceLogic.TreeNodeCanMoveTo(treeNode, targetTreeNode)){if (BaseSystemInfo.ShowInformation){// 是否移动部门if (MessageBox.Show(AppMessage.Format(AppMessage.MSG0038, treeNode.Text, targetTreeNod e.Text), AppMessage.MSG0000, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No){return;}}anizeService.MoveTo(UserInfo, treeNode.Tag.ToString(), targetTr eeNode.Tag.ToString());// 往目标节点中加入被拖动节点的一份克隆targetTreeNode.Nodes.Add((TreeNode)treeNode.Clone());// 将被拖动的节点移除treeNode.Remove();}}}不足之处,希望大家都指点多留言,有错就积极改进,虽然博客园到处是高手,但是我们普通老百姓也往往需要一些实实在在的基础功能。
C实现树型结构TreeView节点拖拽的简单功能,附全部源码,供有需要的参考
应用软件是否好用就体现在一些细节操作上,开发人员是否考虑到了很多细节,例如一个树形结构的数据若不支持拖拽功能那用起来会很糟糕一些,用户体验也会不太爽,下面就以通用权限管理系统组件源码中的组织机构(部门)管理模块为例子,讲解一下树型结构TreeView节点拖拽的简单功能实现。
其实组织机构管理模块平时不怎么用到拖拽功能,但是往往在数据初始化时为了实现快速输入数据及进行整理调整数据时,往往就非常迫切需要一个灵活的组织机构管理器,当每到年底或者公司进行大的人事调整时也会遇到后台管理员迫切需要拖拽功能的需求,平时组织机构不会有大变动。
软件功能是否好用,往往是体现在最需要折腾数据时是否好用?养兵千日用兵一时,一般没经过磨难的新开发的软件往往会想得不够周到,关键时刻容易掉链子,经不起客户的折腾。
例子程序运行效果如何下:当然在节点拖拽时,需要注意几个事情:1:拖拽时总需要有提示信息比较好,防止误操作后找不到被托摘到哪里去了。
2:父亲节点总不能拖拽到自己的子节点上,那不是死循环或者乱了辈份了不是?为了让TreeView支持拖拽功能,需要注意以下几个属性设置及相应的事件代码。
代码实现参考如下:private void tvOrganize_ItemDrag(object sender, ItemDragEventArgs e){if (this.permissionEdit){// 开始进行拖放操作,并将拖放的效果设置成移动。
this.DoDragDrop(e.Item, DragDropEffects.Move);}}private void tvOrganize_DragEnter(object sender, DragEventArgs e){// 拖动效果设成移动e.Effect = DragDropEffects.Move;}private void tvOrganize_DragDrop(object sender, DragEventArgs e){// 定义一个中间变量TreeNode treeNode;//判断拖动的是否为TreeNode类型,不是的话不予处理if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)){// 拖放的目标节点TreeNode targetTreeNode;// 获取当前光标所处的坐标// 定义一个位置点的变量,保存当前光标所处的坐标点Point point = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));// 根据坐标点取得处于坐标点位置的节点targetTreeNode = ((TreeView)sender).GetNodeAt(point);// 获取被拖动的节点treeNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");// 判断拖动的节点与目标节点是否是同一个,同一个不予处理if (BaseInterfaceLogic.TreeNodeCanMoveTo(treeNode, targetTreeNode)){if (BaseSystemInfo.ShowInformation){// 是否移动部门if (MessageBox.Show(AppMessage.Format(AppMessage.MSG0038, treeNode.Text, targetTreeNod e.Text), AppMessage.MSG0000, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No){return;}}anizeService.MoveTo(UserInfo, treeNode.Tag.ToString(), targetTr eeNode.Tag.ToString());// 往目标节点中加入被拖动节点的一份克隆targetTreeNode.Nodes.Add((TreeNode)treeNode.Clone());// 将被拖动的节点移除treeNode.Remove();}}}不足之处,希望大家都指点多留言,有错就积极改进,虽然博客园到处是高手,但是我们普通老百姓也往往需要一些实实在在的基础功能。
目录树控件TreeView的使用
TreeView控件百科名片TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录。
TreeVie w控件中的各项信息都有一个与之相关的Node对象。
TreeView显示Node对象的分层目录结构,每个Node对象均由一个Label对象和其相关的位图组成。
在建立TreeView控件后,我们可以展开和折叠、显示或隐藏其中的节点。
TreeView控件一般用来显示文件和目录结构、文档中的类层次、索引中的层次和其他具有分层目录结构的信息。
目录[隐藏]概述属性方法常用属性常用方法常用事件简单示例[编辑本段]概述TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。
TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。
创建了TreeView 控件之后,可以通过设置属性与调用方法对各Node 对象进行操作,这些操作包括添加、删除、对齐和其它操作。
可以编程展开与折回Node 对象来显示或隐藏所有子节点。
Colla pse、Expand 和NodeClick 三个事件也提供编程功能。
Node 对象使用Root、Pa rent、Child、FirstSibling、Next、Previous 和LastSibling 属性。
在代码中可通过检索对Node 对象的引用,从而在树上定位。
也可以使用键盘定位。
UP ARROW 键和DOWN ARROW 键向下循环穿过所有展开的Node 对象。
从左到右、从上到下地选择Node 对象。
若在树的底部,选择便跳回树的顶部,必要时滚动窗口。
RI GHT ARROW 键和LEFT ARROW 键也穿过所有展开的Node 对象,但是如果选择了未展开的Node之后再按RIGHT ARROW 键,该Node 便展开;第二次按该键,选择将移向下一个Node。
相反,若扩展的Node 有焦点,这时再按LEFT A RROW 键,该Node 便折回。
treeview用法
treeview用法
Treeview 是一款非常实用的 jQuery 插件,可以把结构化数据以树状表格或垂直菜单的形式显示出来,它可以帮助用户快速、方便地查找信息。
实现 Treeview 的基本步骤是:首先,引入 jQuery 的Treeview 插件的js文件和样式文件,然后,以HTML的ul/li标签来表示你的树形数据结构,然后,使用 jQuery 语法调用 Treeview 插件,就可以自动地将用ul/li标签指定的数据树状化,最后,定制 Treeview 样式和属性来更有效地显示数据。
Treeview 拥有很多强大的功能,比如,你可以自定义异步加载数据,也可以根据用户查询来动态筛选数据,可以定制树形节点的展开/收缩效果,甚至还可以为每个节点添加自定义的图标或文字。
使用 Treeview 是非常简单的,只需要明确你的需求,然后按照上面提到的步骤来完成,你就可以定制出一款优美的 Treeview 数据展开结构了。
Treeview 的优势在于可以非常有效地将复杂的数据以一种友好的方式显示出来,这样能够有效提升用户体验,极大提高交互效率。
python tkinter treeview用法 -回复
python tkinter treeview用法-回复Python tkinter Treeview 用法Treeview 是tkinter 库中非常常用的一个控件,可以用于展示多级数据结构,如树状图,目录结构等。
Treeview 提供了一种方便的方式来展示和操作数据,本文将一步一步回答使用tkinter Treeview 控件的问题。
1. 什么是Treeview?Treeview 是一个可以显示多列数据的控件,类似于文件浏览器中的树状结构视图。
它可以在每个节点上显示文本、图标等内容,并支持展开和折叠节点,以便于用户浏览和操作数据。
2. Treeview 的基本使用在使用Treeview 控件之前,需要导入tkinter 和ttk(tkinter 的扩展模块)模块。
然后创建主窗口,并在主窗口中添加一个Treeview 控件。
pythonimport tkinter as tkfrom tkinter import ttkroot = ()tree = ttk.Treeview(root)3. 添加树节点Treeview 中的每个节点都有一个唯一的标识符,称为iid(item identifier)。
可以使用insert 方法添加树节点,并指定其在Treeview 中的位置。
下面是一个向Treeview 中添加树节点的示例:python# 添加根节点tree.insert("", "end", "root", text="Root")# 添加子节点tree.insert("root", "end", "child", text="Child")4. 添加子节点和标签Treeview 的每个节点可以包含一个或多个标签,用于显示不同的数据。
可以使用insert 方法的tags 参数添加标签,并使用column 参数指定标签显示在哪一列中。
treeview控件用法
treeview控件用法TreeView控件是一种类似于目录树的控件,用于显示层次结构的数据。
它通常用来显示文件和文件夹的层次关系,也可以用来显示任何具有层次结构的数据。
使用TreeView控件的一般步骤如下:1. 在窗体中放置一个TreeView控件。
2. 使用Nodes属性添加根节点和子节点。
3. 为每个节点设置Text属性,用来显示节点的文本。
4. 可以设置节点的ImageIndex属性和SelectedImageIndex属性,来显示节点的图标。
5. 使用父节点的Nodes属性来添加子节点,形成层次结构。
6. 可以为节点添加事件处理程序,以便响应节点的单击、双击等操作。
以下是一个简单的例子,演示如何使用TreeView控件:```c#// 创建根节点TreeNode rootNode = new TreeNode("根节点");// 创建子节点TreeNode childNode1 = new TreeNode("子节点1");TreeNode childNode2 = new TreeNode("子节点2");TreeNode childNode3 = new TreeNode("子节点3");// 将子节点添加到根节点rootNode.Nodes.Add(childNode1);rootNode.Nodes.Add(childNode2);rootNode.Nodes.Add(childNode3);// 将根节点添加到TreeView控件treeView1.Nodes.Add(rootNode);```这样就创建了一个简单的TreeView控件,其中包含一个根节点和三个子节点。
treeview控件用法(一)
treeview控件用法(一)TreeView控件用法详解1. 概述TreeView控件是一种常用的用户界面控件,常用于显示层次结构的数据。
它通常用于文件资源管理器、目录结构显示等场景中。
下面详细介绍TreeView控件的一些常见用法和功能。
2. 树状结构显示•树状结构:TreeView控件以树状结构的方式来显示数据,每个节点可以有多个子节点,形成层次结构。
•节点展开和折叠:用户可以通过点击节点前的加号(+)或减号(-)图标,展开或折叠节点的子节点。
•树节点图标:每个树节点都可以设置一个图标显示在节点前面,用于表示不同类型的节点。
3. 构建树•添加根节点:通过调用TreeView控件的()方法,可以在Treeview的根节点下添加子节点。
•添加子节点:通过设置节点的Nodes属性,添加子节点到指定的父节点。
4. 节点操作•插入节点:使用()方法可以在指定位置上插入一个新节点。
•删除节点:使用()方法可以删除指定节点,同时会删除节点的所有子节点。
•修改节点:通过修改节点的Text属性,可以修改节点的文本内容。
5. 节点选择和展示•选择节点:通过设置TreeView控件的SelectedNode属性,可以选中指定的节点。
•展示节点:可以通过设置节点的EnsureVisible属性,使指定节点可见(自动滚动到可见状态)。
6. 节点事件•节点点击事件:可以通过绑定TreeView控件的NodeMouseClick事件,实现对节点的点击响应。
•节点展开折叠事件:通过绑定TreeView控件的BeforeExpand 和BeforeCollapse事件,实现对节点展开和折叠的响应。
7. 其他功能•勾选框:可以通过设置节点的CheckBoxes属性为true,启用节点的勾选框功能。
•拖拽操作:可以通过设置TreeView控件的AllowDrop属性为true,实现节点的拖拽和放置操作。
8. 总结TreeView控件是一种非常实用的界面控件,它提供了树状结构的显示方式,并提供了丰富的操作和事件,能够满足复杂的层次结构数据展示需求。
用户控件-TreeView的用法
⽤户控件-TreeView的⽤法Treeview中ontreenodepopulate是⼀个很好的事件,当你点击树的某个节点时调⼊数据库展现此节点下的数据,并且⽆刷新,当树展现的数据多的时候就可以⽤此⽅法如MSDN的树,但如果数据不多的时候没有必要⽤此⽅法,因为要频繁调数据库好闲话少说由于是⽤户控件所以把 treeview的部分属性和事件公共,⽅便⽤此控件的页⾯调⽤页⾯ TreeDept.ascx<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TreeDept.ascx.cs" Inherits="UserControls_TreeDept" %><asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1" ImageSet="Contacts"NodeIndent="10" onselectednodechanged="TreeView1_SelectedNodeChanged"ontreenodepopulate="TreeView1_TreeNodePopulate" Width="101px"><ParentNodeStyle Font-Bold="True" ForeColor="#5555DD" /><HoverNodeStyle Font-Underline="False" /><SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px"VerticalPadding="0px" /><NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /></asp:TreeView>TreeDept.ascx.CSpublic partial class UserControls_TreeDept : erControl{public event EventHandler DeptSel;public string DeptSelectNodeText{get { return TreeView1.SelectedNode.Text; }}SqlConnection con = new SqlConnection(@"server=LT-C9A4FDA64461;uid=sa;pwd=sa;database=ltweb");protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){BindTree();}}void BindTree(){TreeNode tn = new TreeNode();tn.Text = "软件";tn.Value = "1";tn.PopulateOnDemand = true;TreeView1.Nodes.Add(tn);}protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e){SqlCommand cmd = new SqlCommand("select * from dept where parentID="+int.Parse(e.Node.Value),con);SqlDataAdapter sda = new SqlDataAdapter(cmd);DataTable dt = new DataTable();sda.Fill(dt);foreach (DataRow dr in dt.Rows){TreeNode tn = new TreeNode(dr["Dept_Name"].ToString(), dr["Dept_ID"].ToString());tn.PopulateOnDemand = true;e.Node.ChildNodes.Add(tn);}}protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e){if(DeptSel!=null)DeptSel(this,EventArgs.Empty);}}调⽤页⾯<form id="form1" runat="server"><div><uc1:TreeDept ID="TreeDept1" runat="server" OnDeptSel="DeptSel_Change"/> </div></form>后台public partial class Dept : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void DeptSel_Change(object sender, EventArgs e){Response.Write(TreeDept1.DeptSelectNodeText);}}。
treeview绑定权限功能
treeview绑定权限功能今天在做权限管理的时候对TreeView终于有所了解。
在这里我所实现的是使用T reeView进行权限分配首先说一下TreeView的几个基本的属性1.ID 获取或设置treeviewd的标识符2.NodeIndent 获取或设置TreeView控件子节点的缩进量,该量是以像素为单位的3.Nodes 获取TreeNode对象的集合(TreeNodeCollection)。
该属性是只读的。
4.ShowCheckBoxex 是否显示复选框,有none,root,parent,leat,all五种,这里选择all TreeNode:由于TreeView中的每一个节点都是一个TreeNode,所以事先也要对TreeNode有所了解TreeNode的一般属性1.Value 用于设置该节点保存的一个值,不显示2.ImageUrl 该节点的图片路径3.NavigateUrl 该节点的链接地址4.Tex 该节点显示的内容分配资源页面:根据把所有的资源绑定到TreeView中,但由于为要进行分配资源的角色已经拥有了部分资源,所以还要考虑到把该角色已经拥有的资源给选上钩。
数据库设计sys_role 角色表roleId 角色idroleName 角色名称sys_roleRight 角色-资源关系表roleRightIdroleId 角色idrightId 资源idsys_right 资源表rightIdnode 节点url 链接地址image 图片地址parentId 父节点id( parentId = 0表示该节点为根节点)remark 文字描述下面进入正题一、进入分配资源页面根据不同角色,选择分配资源链接。
在链接中传入roleId标示所选择的角色,在AssigneRight.aspx页面中获取该roleId,并把它存储在ViewState中。
//使用ViewState存储角色idprivate string RoleId{get { return Convert.ToString(ViewState["RoleId"]); }set { ViewState["RoleId"] = value; }}在页面加载时获取roleId,并绑定TreeViewif (!IsPostBack){string roleId = Request.QueryString["roleId"];if (!string.IsNullOrEmpty(roleId)){RoleId = roleId;调用Sys_roleManager的方法通过RoleId获取该条角色信息Sys_role role = Sys_roleManager.GetSys_roleByRoleId(Convert.ToInt32(RoleId));lblRoleName.Text += role.RoleName;//通过RoleId查询Sys_roleRight表获取该角色的角色-资源关系集合IList roleRights = Sys_roleRightManager.GetSys_roleRightsByRoleId(RoleId);// 使用Linq检索roleRights集合获取该角色所拥有的资源,并把它所拥有的资源存放到ViewState中Role_RightId = (from right in roleRights select right.RightId.T oString()).ToList();}//获取所有的根节点IList rights = Sys_rightManager.GetSys_rightsByParentId(0);//绑定TreeViewBindTreeView(rights);}private IList Role_RightId{get{ return (IList)ViewState["Role_RightId"]; }set{ViewState["Role_Right"] = value;}}二、绑定TreeView上面说到使用BindTreeView(IList rights)方法对TreeView进行数据绑定,下面就看一下对该方法的实现BindTreeView(IList rights)方法中传入的参数为上面的rights集合,该集合中存放着所有的parentId=0的节点。
treeview的使用方法
t r e e v i e w的使用方法(总3页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除delphi中Treeview的使用介绍每一个节点下子节点形成这一节点的Items属性,当前节点有一个唯一的Index(TreeNode的Index属性),用于说明子节点在Items中的位置,每一个节点下的子节点是顺序编号的,第一个是0,第二个是1,依次类推。
用IndexOf 方法获得子节点的顺序,绝对顺序 (AbsoluteIndex)则是指从Treeview第一个项开始的顺序值,第一个是0,如此推下去。
Item属性则根据Index的值返回当前节点的第Index个子节点。
Count则表明属于此项的所有子节点的数量。
用MoveTo方法将Item由一个位置移到另一个位置。
Expanded属性表明是否所有的子项都全部展开(包括子项的子项),为True表示全部展开。
IsVisible属性表明一个项是否在树中能被看到,如果树全部展开那么这个Item是肯定可以被看到。
HasChildren属性表明一个项是否有子项。
GetFirstChild, GetLastChild, GetPrevChild, and GetNextChild分别返回当前项子项的第一个、最后一个和前一个、后一个项。
GetNextSibling and GetPrevSibling则返回在同一Level下的下一个和上一个项。
GetNextVisible and GetPrevVisible则返回能看得到的下一个和上一个项。
如果一个节点有Parent,则HasAsParent方法返回True. Parent为当前项的父项。
Focused属性确定焦点是否落在此节点上,被Focus时会一个标准的方框围住。
很显然,只有一个节点会被聚焦。
Selected属性表明一个节点是否被选中,同样只有一个节点会被选中。
树形控件(Tree View)在管理信息系统中的应用
树形控件(Tree View)在管理信息系统中的应用
胡家宝;古权;王向珲
【期刊名称】《电脑开发与应用》
【年(卷),期】2001(014)008
【摘要】首先介绍使用Tree View控件时涉及主要的方法、属性和事件.重点介绍在应用系统中如何把数据表中具有层次的数据信息加到Tree View控件中以及如何在维护Tree View控件中实现即见即所得的方法,给出了它们实现的算法.
【总页数】3页(P31-32,34)
【作者】胡家宝;古权;王向珲
【作者单位】武汉理工大学,武汉,430063;武汉理工大学,武汉,430063;武汉理工大学,武汉,430063
【正文语种】中文
【中图分类】TP3
【相关文献】
1.Tree View控件在固定资产管理中的应用 [J], 胡南珍
2.PB中实现对Tree View控件的遍历 [J], 何爱新;项飞
3.树形控件和列表控件在"新闻稿处理编程"中的应用 [J], 胡为欣
4.Tree View在高校学生管理系统中的应用 [J], 李志宏
5.ArcView 3.0a中dialog模块在城市GIS设计与开发中的应用——以长春市城市建设与管理信息系统为例 [J], 徐新良;庄大方;张树文
因版权原因,仅展示原文概要,查看原文内容请购买。
第15讲 TreeView控件应用
14
三、从XML文件读取节点数据(4/5) 文件读取节点数据
这个XML文档中只允许有一个根标签 <TREENODES></TREENODES>,所有的节点标签都必 须放在这个根标签之内,标签标记TREENODES必须大写。 每个节点标签<TreeNode ></TreeNode>中定义一个节 点,节点标签可以嵌套,嵌套层次表明了节点的结构关系。 (三)指定 (三)指定TreeView控件的TreeNodeSrc属性 指定TreeView控件的 控件的TreeNodeSrc属性 需要指定TreeView控件的TreeNodeSrc属性,以指示 TreeView控件的节点数据和结构来自文件。注打开 TreeView控件的属性窗口,在TreeNodeSrc属性上指定其 值为刚编写的那个文件“XMLTreeViewNode.xml”。
程序设计
李德奇主编
15
三、从XML文件读取节点数据(5/5) 文件读取节点数据
(四)控件效果 四 控件效果
运行程序,效果如下图。
程序设计
李德奇主编
16
四、TreeView控件应用举例(1/10) 控件应用举例
(一)获取用户选择的节点 一 获取用户选择的节点 程序运行后,用户会在TreeView控件上操作,或者展开节 点,或者折叠节点,或者选择(打开)某一个节点。当用户选 择(打开)了某个节点之后,程序必然需要有所动作来对用户 的选择作出响应。例如在Windows资源管理器中,当用户在左 边的资源结构树上选择某个节点后,需要在右边的资源内容区 显示出该节点的所有资源。在Web应用程序的页面上使用 TreeView控件时,一般也会参照这个习惯。为此,获取用户对 节点的选择信息就显得必要了。 (二)两种获得用户选择节点信息的方法 二 两种获得用户选择节点信息的方法 ①TreeView控件的SelectedNodeIndex属性保存了用户 选择节点的索引号,该属性的文本是形如”x.y.z..”的结构。例 如当TreeView1. SelectedNodeIndex.Text的值为“0.2.1”时, 用户选择的节点在第一层的索引号为0,第二层的索引号为2, 第三层的索引号为1,根据这个索引号可以确定用户选择了哪 个节点。 17 程序设计 李德奇主编
TREEVIEW控件在学籍管理中的应用
Use TREEVIEW Control in Student Status Manage
Application
作者: 文刚
作者机构: 内江职业技术学院信息电子工程系,四川内江641100
出版物刊名: 内江师范学院学报
页码: 31-34页
主题词: TREEVIEW控件;学籍管理;应用实例
摘要:在学籍管理程序设计中使用TREEVIEW控件以树形目录的方式来分层显示、定位学生,以学校、班级、学生三层作为控件的三层结点.对TREEVIEW控件的INIT、NODECLICK事件进行编程来实现控件的显示,同时对绑定学籍信息中的序号,班级,姓名文本框控件的相应事件进行编程,使TREEVIEW控件在不重启的情况下及时反馈学籍库中信息的变化.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TreeView在借书管理系统中的实现与应用摘要:文章介绍了树形视图控件(也称为树状浏览控件)的常用事件、常用函数及使用的具体步骤,并以借书管理系统为例,详细地介绍了树形视图的具体实现与应用。
通过灵活使用树形视图控件,在pb开发中,可以使应用程序的功能更加强大,更加直观地表示数据项。
关键词: powerbuilder 树型视图控件数据窗口
1.引言
powerbuilder是一款优秀的企业级数据库前端应用开发工具,它提供简洁友好的用户界面、功能强大的数据窗口技术和性能优越的数据库访问能力,所以受到很多程序开发人员的喜爱,是当前流行的数据库前端开发工具之一。
而在powerbuilder的众多控件之中,树形视图控件能直观地表示数据项,所以在开发各种管理系统时,经常会用到这种控件,但是这种控件使用时比较复杂,故本文在介绍树形视图的常用事件、常用函数及使用方法之后,通过具体的实例进行讲解。
2.树形视图简介
如果你想显示具有层次关系的数据,那么树形视图控件是最适合的控件。
它就像windows系统中的资源管理器,通过资源管理器,可以在左边的列表中以层次结构列出驱动器、目录及子目录,而用户可以通过单击层次结构中的加号(+)、减号(-)展开或者折叠
目录。
要想管理大量数据,树形视图是最好的工具,因为用户只需要简单地单击鼠标左键就可以选择自己想要的数据,这种表示方法使用户一目了然。
在powerbuilder中,树形视图(treeview)和树形视图项(treeviewitem)是树状浏览控件的两个对象。
其中树型视图对象可以在窗口画笔中通过点击鼠标的方式创建,而树型视图项则必须通过编程来声明及定义它们的属性[1]。
树状浏览控件的常规属性很多课本都有介绍,在此不再赘述。
下面介绍它的常用事件和常用函数。
2.1常用事件
constructor(构造事件):在控件创建时触发该事件,一般在构造事件里构造树视图项。
click(单击事件):单击树视图项时,执行查询程序。
2.2常用函数[1]
insert item first ():将加入项作为第一个子项;
insert item last ():将加入项作为最后一个子项;
insert item():将加入项放在指定的子项后面;
inserti tem sort ():按排序的顺序放置加入项。
3.树形视图的使用步骤
第一步,添加treeview控件,设置该控件的常规属性。
第二步,编写事件处理程序为树浏览控件添加树视图项。
在添
加树视图项时,有两种方法:第一种方法是一次性地向树形视图控件添加全部层次的项目。
第二种方法是先添加所需层次的项目,而其他项目在需要时再进行添加。
(注意:要正确地运行,就必须建立数据库,设置好数据源,而且能连接数据库。
通常连接数据库的代码是放在应用程序里的。
)
4.树形视图使用实例
下面以借书管理系统为例,先建立图书信息数据库,该库中包含图书信息表。
图书信息表包含图书编号(bookid)、图书类型(typeid)、图书名称(title)、作者(author)等字段。
该表中的每本书都对应到树中的一个节点。
树形视图控件跟数据窗口控件一起使用更加能体现出数据的层次性,适用于大量数据的管理。
故在此,我们新建一个应用程序book,并新建一个窗口w_tree、数据窗口dw_book和dw_tree。
数据窗口dw_book的数据列为图书信息表中的所有列,数据窗口dw_tree的数据列为图书信息表中的图书编号和图书类型列。
窗口w_tree中包含一个树状浏览控件和一个数据窗口控件。
数据窗口控件用来显示图书的信息,其dataobject=“dw_book”。
为树状浏览控件设置好常规属性后,就可以编写事件程序代码了。
在树形视图控件中,树形视图项是非常重要,也是很关键的,它是在程序中逐项加入的,可以用insertitem()系列函数中的其中一种将树形视图项加入到树形视图中。
在将树形视图项加入到树
形视图时,本文分别使用了三种方法:第一种方法是采用直接插入的方法加入根节点;第二种方法是采用游标插入第二层;第三种方法是通过数据存储插入第三层。
下面介绍事件处理程序代码:首先,在窗口的open()中添加以下代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
其次,在树控件tv_1的构造事件中添加如下代码:
treeviewitem t_node // 定义树视图项目对象
integer lev0,lev1,lev2,rc,i // lev0第一层,lev1第二层,rc行数,
string c_typeid,s_id,s_typeid
//数据存储
datastore ds
ds=create datastore
ds.dataobject=“dw_tree”
ds.settransobject(sqlca)
ds.retrieve()
rc=ds.rowcount() //总行数
//插入第一层:根节点(直接插入)
t_bel=“图书编码”
lev0=tv_1.insertitemfirst(0,t_node)
//游标
declare c cursor for select distinct typeid from bookinfo;//声明游标
open c; //打开游标
fetch c into :c_typeid; //使用游标
do while sqlca.sqlcode=0
//插入第二层:类型(通过游标插入)
t_bel=c_typeid
lev1=tv_1.insertitemlast(lev0,t_node)
//插入第三层:编号(通过数据存储插入)
for i=1 to rc
s_typeid=ds.getitemstring(i,”typeid”) // 图书类型s_id=ds.getitemstring(i,”bookid”) // 图书编号
if s_typeid=c_typeid then
t_bel=s_id
lev2=tv_1.insertitemlast(lev1,t_node)
end if
next
fetch c into :c_typeid; // 通过游标取下一个类型的值loop
tv_1.expanditem(lev0) //展开第一层下的节点
close c; // 关闭游标
destroy ds; // 销毁数据存储ds,释放空间
最后,在树状浏览控件的click事件中编写如下代码:treeviewitem t_node
string str
integer lev
this.getitem(handle,t_node) //得到树控件点击项
lev=t_node.level //获得点击项的层次
str=t_bel //获得节点名称
choose case lev
case 1 // 点击项为第一层,显示所有的信息
dw_1.setfilter(”typeid like ‘%’”)
dw_1.filter()
case 2 // 点击项为第二层,显示该层下所有的信息
dw_1.setfilter(”typeid=‘“+str+”‘“)
dw_1.filter()
dw_1.setsort(”bookid a”)
dw_1.sort()
case 3 // 点击项为第三层,显示该层下所有的信息
dw_1.setfilter(”bookid=?耷?謖”+str+”?謖”?謖)dw_1.filter()
end choose
5.结语
powerbuilder是一款优秀的企业级数据库前端应用开发工具,是当前最流行的数据库前端开发工具之一。
在pb中,树状浏览控件能够很好地体现出数据间的层次关系,灵活地使用树状浏览控件会使程序界面更加美观。
本文在介绍了树状浏览控件的常用事件、常用函数及使用方法的基础上,以借书管理系统为例,详细地介绍了树形视图的具体实现与应用。
参考文献:
[1]周咏梅.pb中树形视图的实现与数据库表结构的设计.软件
技术,2004.
[2]樊金生,张翠肖.powerbuilder 10.5实用教程.科学出版社.。