`
zendj
  • 浏览: 121192 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

TreeView控件心得====转载

阅读更多

TreeView控件心得====转载

总结了一下用MS的TREE控件的心得,大家一起来分享,当然,也不乏有其他网友的一些好的见解被录入其中,另有遗漏处请大家不吝赐教!

相信只要你仔细阅读了这篇小菜文,并参考一下提供的例程,一定能够掌握TREE的基本用法!

1.工欲善其事,必先利其器。首先保证装好你的组件,这个包安装非常方便,只要运行一下即可在VS.NET的工具栏中找到并使用了:
http://218.56.11.178:8018/FileDown.aspx?FID=4
也可以关注一下官方站是否有新版发布:
http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp

2.常用的几个属性和方法
~Index 获取树节点在树节点集合中的位置。
~Nodes 获取分配给树视图控件的树节点集合。
~Parent 获取或设置控件的父容器。
~SelectedNode 获取或设置当前在树视图控件中选定的树节点。
~ExpandAll 展开所有树节点。
~Checked 获取或设置一个值,用以指示树节点是否处于选中状态。
~Text 获取或设置在树节点标签中显示的文本。
~Expand 展开树节点。
~Clear 清空树
~Remove 从树视图控件中移除当前树节点。
以上由其他网友总结,补充:
~Height 控件的高度
~Width 控件的宽度
~BackColor 背景颜色
~BorderColor 边框颜色
~BorderStyle 边框样式
~BorderWidth 边框宽度
~CssClass 应用于该控件的CSS类名
~ExpandedImageUrl 展开时显示的节点图标
~ImageUrl 未选择或展开是显示的节点图标
~SelectedImageUrl 选中状态下显示的节点图标
~Indent 缩进距离,只有在ShowLines设为TRUE时才生效。
~ShowLines 是否显示层级连接线
~ShowPlus 是否显示+/-符号按钮
~ShowToolTip 在有父节点上显示工具提示(+/-号的使用展开/关闭)。
~AccseeKey 控件使用的键盘快捷键
~AutoSelect 为TRUE时,当用键盘移动节点时,自动选择新节点
~AutoPostBack 当改变状态时,自动回存
~Enabled 控制控件的启用状态
~EnableViewState 控件是否自动保存其状态以用于往返行程
~ExpandLevel 初始化控件是展开节点的层数
~SelectExpands 当选中一个接点时,是否自动展开该节点
~TabIndex TAB键次序
~Visible 控件是否可见

3.实用技巧:
1)怎样点击文字(不是+/-号)即可展开(收缩)子节点
将TREE的ShowToolTip 属性设为false即可。

2)当鼠标指到某父接点时,如何不显示显示“节点名:user +/- to expand/collapse”
将TREE的SelectExpands 属性设为TRUE即可。

3)不显示树型的问题
首先:控件包没装好,使用上边介绍的控件包装一下试试。
其次:TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.0

4)关于闪烁
将AutoPostBack属性设置为真,SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话,将AutoPostBack属性设置为FALSE.

5)如何实现用键盘上下左右键移动焦点时,自动选择新节点并执行新节点
将TREE的AutoSelect 属性设为TRUE即可。

6)不想显示+/-符号按钮怎么做?
将TREE的ShowPlus 属性设为False即可。

7)不想显示层级连接线怎么做?
将TREE的ShowLines 属性设为False即可。

8)如何设置节点旁的图标
~ExpandedImageUrl、ImageUrl、SelectedImageUrl这3个属性是控制图标的,选择自己喜欢的就OK了。

4.看看这个例子,对你一定有启发,是一棵无级树,不过在实际使用中可能会有些麻烦:
http://218.56.11.178:8018/FileDown.aspx?FID=246

5.这个论坛也使用了树(asp.net+C#+MSSQL 2000),并且代码开放,,如果觉得有参考价值,不妨装起来看看,其中还包含了其他一些常用的asp.net编程技巧,演示了TREE控件如何和数据库结合,动态显示库中的数据,这棵树只有两层,不过比较实用:
http://218.56.11.178:8018/FileDown.aspx?FID=212
其中:tree.aspx、tree.aspx.cs是TREE控件使用的主要部分。

论坛的实际应用演示地址,在这里:
http://expert.kaer.cn/


TreeView使用集锦 hgknight(原作)

原来在论坛里发过专题帖子,只是由于帖子丢失原因,有些问题找不到了,同时这次也补充了一些,发到文档区以方便查询吧
原贴
http://expert.csdn.net/Expert/topic/1525/1525202.xml

1.下载地址
http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
下载后是后缀为bat的版本
(1)bulid.将bulid.bat的路径指向csc.exe所在路径,生成Microsoft.Web.UI.WebControls.dll。
(2)在wwwroot下创建空目录webctrl_client\1_0。
(3)将build\Runtime下的文件拷至webctrl_client\1_0下。
(4)选择工具箱的自定义工具箱,添加Microsoft.Web.UI.WebControls.dll。
有些麻烦
但如果你能找到后缀是msi的自动安装版本,直接下一步就行(我一直用这个版本,hoho)
安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里

2.运行时无法显示
一般是TreeView的版本问题,最好下载英文版自动安装版本重新安装,安装前应该先到添加删除程序里卸掉原版本

3.显示格式出错(非树状显示)
TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.0

4.框架里使用TreeView
设置NavigateUrl、Target属性,可更新另外的Frame

5.找不到TreeNode类
使用TreeView,最好添加namespace:using Microsoft.Web.UI.WebControls;

6.遍历TreeView节点(递归算法)
private void Page_Load(object sender, System.EventArgs e)
{
GetAllNodeText(TreeView1.Nodes);
}
void GetAllNodeText(TreeNodeCollection tnc)
{
foreach(TreeNode node in tnc)
{
if(node.Nodes.Count!=0)
GetAllNodeText(node.Nodes);
Response.Write(node.Text + " ");
}
}

7.得到node结点的父节点
TreeNode pnode;
if(node.Parent is TreeNode)
pnode=(TreeNode)node.Parent;
else
//node is root node

8.修改TreeView样式(示例)
<iewc:TreeView id="TreeView1" runat="server" HoverStyle="color:blue;background:#00ffCC;" DefaultStyle="background:red;color:yellow;" SelectedStyle="color:red;background:#00ff00;">
用代码:
TreeView1.DefaultStyle["font-size"] = "20pt";

9.展开时不提交,改变选择节点时才提交
将autopostback设置成false;
在body里添加 <body onload="initTree()">
然后在PageLoad里写:
string strTreeName = "TreeView1";
string strRef = Page.GetPostBackEventReference(TreeView1);
string strScript = "<script language=\"JavaScript\"> \n" + "<!-- \n" + " function initTree() { \n" +" " + strTreeName + ".onSelectedIndexChange = function() { \n" + "if (event.oldTreeNodeIndex !=
event.newTreeNodeIndex) \n" + "this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); \n" + "window.setTimeout('" + strRef.Replace("'","\\'") + "', 0, 'JavaScript'); \n" + " } \n" + " } \n" + "// --> \n" + "</script>";
Page.RegisterClientScriptBlock("InitTree",strScript );

这样就只有你点击的节点更改的时候才提交!

10.TreeView结合XML
把XML文件设置为如下格式,然后直接设置TreeNodeSrc为该XML文件就行
<?xml version="1.0" encoding="GB2312"?>
<TREENODES>
<TREENODE TEXT="node0" EXPANDED="true">
<TREENODE TEXT="node1"/>
<TREENODE TEXT="node2"/>
</TREENODE>
<TREENODE TEXT="node3" NavigateURL="3.aspx"/>
</TREENODES>
或者用代码
TreeView1.TreeNodeSrc="a.xml";
TreeView1.DataBind();

客户端控制TreeView
http://expert.csdn.net/Expert/topic/1382/1382892.xml

1.设置所选节点,如选中第二个节点
function SetSelNode()
{
TreeView1.selectedNodeIndex="1";
}

2.得到所选节点的Text,ID或NodeData
function GetAttribute()
{
alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
}
替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData

3.修改节点属性,如修改第一个节点的Text
function ModifyNode()
{
var node=TreeView1.getTreeNode("0");
node.setAttribute("Text","hgknight");
}

4.得到点击节点
function TreeView1.onclick()
{
alert(TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("Text"));
}

5.添加节点
function AddNode()
{
var node=TreeView1.createTreeNode();
node.setAttribute("Text","hgknight");
TreeView1.add(node);
}

6.js遍历所有节点
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode);

function AlertNode(NodeArray)
{
if(parseInt(NodeArray.length)==0)
return;
else
{
for(i=0;i<NodeArray.length;i++)
{
var cNode;
cNode=NodeArray[i];
alert(cNode.getAttribute("Text"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}

分享到:
评论

相关推荐

    ASP.NET AJAX的TreeView控件模板

    ASP.NET AJAX的TreeView控件是ASP.NET Web应用程序中用于创建层级结构数据展示的常用组件。这个控件允许用户以树状结构浏览数据,通常用于菜单系统、目录结构或组织层次结构的显示。在ASP.NET AJAX中,TreeView控件...

    TreeView控件使用技巧

    【TreeView控件】是PowerBuilder中的一个重要控件,主要用于展示数据的层级结构,与Windows资源管理器中的树形视图类似。它具有清晰地呈现主次关系和方便操作的特点,通常与DataWindow配合使用,一个负责信息的分类...

    c#中treeview控件节点图代码

    在C# WinForms开发中,`TreeView`控件是一种常用且功能强大的用户界面元素,用于展示具有层次结构的数据。在给定的代码片段中,我们可以看到一个基础的`TreeView`控件节点创建过程,尽管代码中包含了一些非标准字符...

    快速掌握treeview控件

    TreeView控件是Windows Forms开发中常见的一种用户界面元素,它用于显示层次结构的数据,比如文件系统、组织结构或任何其他可以表示为树形结构的信息。在这个文档中,我们将深入探讨如何快速掌握TreeView控件的使用...

    TreeView控件动态添加MenuStrip控件

    ### TreeView 控件动态添加 MenuStrip 控件知识点详解 #### 一、背景介绍 在Windows Forms应用程序开发过程中,经常会遇到需要动态更新用户界面的需求。其中,`TreeView` 和 `MenuStrip` 是两个常用的控件,分别...

    在ASP.NET中使用Treeview控件和XML

    在ASP.NET中,Treeview控件是一个非常有用的组件,它能够以树形结构展示数据,常用于构建导航菜单、组织层次结构信息等。配合XML数据源,我们可以方便地动态加载和管理这些信息,使得Web应用的用户界面更加直观且...

    vfp 下 treeview 控件使用例子

    在Visual FoxPro(VFP)中,TreeView控件是一个常用的数据可视化工具,它允许程序员以树状结构展示数据,常用于文件系统、目录结构或层级关系的显示。本篇文章将详细解析`vfp 下 treeview 控件使用例子`的相关知识点...

    Winform的TreeView控件实现节点多选

    在Windows Forms(Winform)开发中,TreeView控件是一个常用组件,用于展示层次结构的数据,如文件系统、组织结构等。然而,标准的TreeView控件默认仅支持单选操作,不提供多选功能。本教程将详细介绍如何在Winform...

    treeview控件使用实例

    在VB(Visual Basic)编程环境中,TreeView控件是一种常见的用户界面元素,用于显示层次结构的数据,通常以树状的形式展现。这个"treeview控件使用实例"包含的源码提供了直观的学习资源,帮助开发者理解如何有效地...

    TreeView控件的用法

    **TreeView控件详解** 在.NET框架中,TreeView控件是一个常用的数据展示组件,它能够以树形结构显示数据,常用于文件系统、目录结构、层级关系的展示等场景。本篇将详细介绍TreeView控件的基本用法,以及如何在实际...

    TreeView控件的使用

    TreeView控件的使用 TreeView控件是一种常用的树形控件,能够显示层次结构的数据。它广泛应用于各种类型的应用程序中,如文件系统、组织架构、产品分类等。在ASP.NET中,TreeView控件可以与数据库集成,动态绑定...

    TreeView控件使用的例子

    TreeView控件是Windows Forms开发中常见的一种用户界面元素,它用于展示层次化的数据结构,比如文件系统、组织结构或者数据库的分类。在这个例子中,我们将深入理解如何利用TreeView控件来实现基本的功能,并通过...

    三小时掌握TREEVIEW控件

    【TREEVIEW控件详解】 TREEVIEW控件在ACCESS数据库中是一种常见的用户界面元素,用于展示层级结构的数据。这种控件允许用户以图形化的形式浏览和操作数据,类似于计算机文件系统的目录结构。通过TREEVIEW控件,用户...

    pb treeview控件的使用技巧

    ### PowerBuilder中TreeView控件使用技巧详解 #### 一、前言 在PowerBuilder开发工具中,TreeView控件因其能够直观地展现多层次的数据结构而受到广泛欢迎。它可以帮助用户更好地理解复杂的分层信息,比如组织架构...

    WPF Combox+treeview以及 datagried+treeview控件

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中使用自定义的`Combobox+TreeView`和`DataGrid+TreeView`控件来处理大规模数据。这些控件是WPF开发中的重要组成部分,特别是在构建用户界面...

    创建的TreeView控件大小不能设定

    在Windows应用程序开发中,TreeView控件是一个常用的组件,它用于展示层次结构的数据,例如文件系统、组织结构等。然而,有时候开发者可能会遇到一个问题,即创建的TreeView控件无法设定其大小,这可能会影响到整个...

    treeview控件的使用

    TreeView控件是一种在Windows应用程序中广泛使用的用户界面组件,它以层次化列表的形式展示项目,每个项目可以有若干子项目。这种控件特别适用于需要以树状结构展示数据的场景,如文件系统、组织结构等。 创建...

    Treeview控件

    Treeview控件TreeView控件显示Node对象的分层列表,每个Node对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。创建了...

    C# treeview控件使用

    ### C# TreeView 控件使用详解 在C# Web开发中,`TreeView` 控件是一种非常实用的导航工具,它可以直观地展示具有层次结构的数据,如文件系统、组织架构等。下面将详细介绍如何使用 `TreeView` 控件以及相关的操作...

    TreeView控件.rar

    TreeView控件是Windows Forms开发中常见的一种用户界面元素,它用于显示层次结构的数据视图,如文件系统、组织结构或数据库记录。这个压缩包“TreeView控件.rar”包含的资源很可能是关于如何在C#或VB.NET等.NET ...

Global site tag (gtag.js) - Google Analytics