ASPNET真正有用的特性就是其可扩充性世界各地的开发人员都可以创建自己的自定义控件这种自定义控件可以方便地在你自己的过程中进行定义其中Internet Explorer Web Controls就是由微软公司在标准的ASPNET控件之外创建的这样一个集合
Windows资源管理器中的驱动器和其下的文件及文件夹就是按照一种层次结构来安排的在这个控件集中有一个treeview控件为我们提供了一种按层次结构显示信息的方式treeview控件包含了称做“节点”(node)的一些条目的一个列表每一个节点都可以有自己的节点集合从而提供了一种更深层的数据定义每个节点都可以被折叠起来从而允许访问者在一个treeview控件中查找只看他所感兴趣的那一级的数据就像Windows的资源管理器一样
首先得明确一点就是测试的环境只要环境正确接下来的工作就很轻松了
要测试该控件得有一个叫IE WebControls的文件具体的文件可以点击这里下载或到微软的网站去下载
按照他提供的方法进行安装如有不清楚请仔细看清楚他的readme文档
这里跳过下载方法直接进入环境的配置
IE Web Controls
双击安装完成默认:系统盘:program filesIE Web Controls目录下
运行“程序——Microsoft Visual StudioNET ——Visual StudioNET 工具 ——Microsoft Visual StudioNET 命令提示符”进入到IE Web Control 安装目录
运行buildbat
运行xcopy /s /i buildRuntime (网站根目录默认系统盘):Inetpubwwwrootwebctrl_client_ /y
在”工具箱——web窗体“单击右键选择“添加/移除项”在弹出对话框中选择net framwork 组件单击“浏览”找到IE WebControldll 文件添加上即可
这样就配置好了运行环境接下来进行实操作阶段了
一定义TreeView控件
代码拷贝框
导入名称空间
<%@ import namespace="MicrosoftwebUIwebcontros"%>
注册这个名称空间并为其给定一个TagPrefix以便于对这个控件库中的控件进行定义
<%@ register tagprefix = "iecontrols"
namespace="MicrosoftwebUIwebcontrols"
assembly="microsoftwebUIwebcontrols"
%>
设置好指令后就可以定义下面这样的一个treeview控件了
<iecontrols:treeview
id="tvbasic"
autoselect="false"
shoplus="true"
showlines="true"
expandlevel=
runat="server"
>
</idcontrols:treeview>
下面来解释一下相应代码:
autoselect = "false"
当访问者在TreeView控件中对节点进行定位时可以使用键盘上的箭头来进行这种定位当这个TreeView控件的autoselect属性值设为TRUE时可以使用键盘上的键来在treeview控件中滚动以选聂一个条目如果设置为false的话则不允许这样做
showplus="true"
当一个treeview控件中的两个节点收到一起的时候你可以显示一个加号(+)访问者就知道这个节点可以展开通过设置showplus属性你可以控制在这个位置是否显示加号如果这个属性值设为true将使用加号;否则不使用
showlines="true"
在一个treeview控件中的两个节点之间可以显示一些线条通过设置showlines属性你可以控制是否显示这样的线条
Expandlevel=
这个Treeview控件的Expandlevel属性用来确定在默认的情况下沿着这个treeview控件的层次结构展开的级别数
<iecontrols:treeview>
</iecontrols:treeview>
在这个treeview控件定义的开始和结束标记之间可以定义一些treenode控件
二在treeview控件中使用treenode控件
如果你创建一个treeview控件的话就需要在其中添加一些treenode控件来显示一些信息treenode控件显示为treeview控件的层次结构中的一个项treenode控件可以包含了treeview控件;或者该控件本身也可以独立存在下面将向你展示如何在一个treeview控件中定义treenode控件
本实例将显示我喜欢的一些网站其中每个网站可以是一个独立的或者在其下还有其它网站这个treeview控件具有如下定义:
代码拷贝框
<iecontrols:treeview
id="tvwebsite"
autoselect ="false"
showplus="true"
showlines="true"
expandlevel=
runat = "server"
>
接下来在treeview控件的开始和结束标记中定义treenode控件
<iecontrols:treenode text="我常去的站点">
<idcontrols:treenode text="设计类站点">
<idcontrols:treenode text="蓝色理想" />
<idcontrols:treenode text="有风的日子" />
<idcontrols:treenode text="设计联盟" />
</iecontrols:treenode>
<iecontrols:treenode text="编程类站点">
<iecontrols:treenode text="ASP编程">
<iecontrols:treenode text="ASP COOL" />
<iecontrols:treenode text=""/>
</iecontrols:treenode>
<iecontrols:treenode text="ASPNET编程">
<iecontrols:treenode text="Dotnet技术网" />
<iecontrols:treenode text="aspnet"/>
</iecontrols:treenode>
<iecontrols:treenode text="程序员大本营" />
</iecontrols:treenode>
</iecontrols:treenode>
其中定义了一个两级的节点这个树状视图中包含了"设计类站点"和"编程类站点"这二个大节点而"编程类站点"中又有两个子节点"ASP编程"和"aspnet编程"其中每个子节点又都定义了其他的节点
要注意包含其他节点的treenode控件和独立的treenode控件之间的差别当一个treenode控件中还有其它treenode控件时这些子控件在其父控件的开始和结束标记之间进行定义:
<iecontrols:treenode text="">
</iecontrols:treenode>
但对于一个独立的treenode控件来说其开始和结束标记是自包含的:
<iecontrols:treenode text="" />
当页面首次加载时这就是整个视图节点的展开情况由于这里的expandlevel属性值设为因此将显示到所有级别上的节点此外还要注意的是由于showlines属性和showplus属性都为true因此在所有显示的这个视图中连接节点间的线条和连接框都显示出来
"我常去的站点"是当前选中的节点项访问者可以敲击回车或者在这个节点上点击鼠标然后访问者可以使用键盘上的箭头来沿着树状视图的层次结构进行定位