浏览时有时会看到一些网站在左边采用类似资源管理器的树形结构在树形结构中单击在右边显示内容层次清晰且方便快捷本文主要介绍ASPNET服务器控件treeview 的使用方法treeview控件属于microsoft webcontrols在下载和使用过程中本人碰到一些问题通过反复实验查找资料找到一些解决办法现把treeview使用心得写出来旨在对想在网站中使用树形结构的朋友有所帮助
一下载
microsoft webcontrols控件包括四个组件MultiPageTabStripToolbartreeViewtreeview可以到_DOT_NET_ServerControls/WebControls/defaultasp去下载下载后得到文件IEWebControls只有KB安装后自动在C:\Program Files建立IE Web Controls执行其下面的bulidbat如果安装后还不能使用可以采用以下方法解决
打开bulidbat的内容查看cscexe路径是否正确一般不能正确使用这可能是原因之一cscexe为系统文件如果它的路径与你的计算机不符合修改后存盘再执行bulidbat将得到MicrosoftWebUIWebControlsdll和一些文件夹
查看默认的web站点一般默认的web站点为C:\Inetpub\wwwroot如果不是可以通过打开管理工具àInternet 服务管理器方法对默认web站点单击右键à属性à主目录修改主目录
将C:\Program Files\IE Web Controls\build下runtime文件夹下所有内容复制到主目录\webctrl_client\_下是将iewebcontrols四大控件的系统文件复制到默认web站点下
将C:\Program Files\IE Web Controls\build下MicrosoftWebUIWebControlsdll文件复制到主目录中建立的项目文件夹下\bin中
通过对以上四个方面的操作iewebcontrols才能正常使用
二添加控件
打开Microsoft Visual Studio NET 在web工具箱中单击右键选择自定义工具箱àNET框架组件通过浏览添加MicrosoftWebUIWebControlsdll文件添加后可以在NET框架组件中选择命名空间为microsoftwebuiwebcontrols的treeview
三treeview属性和方法介绍
在窗体中添加一个treeview控件通过treeview对象的属性nodes创建所需的树形结构
例建立如下树形结构
窗体中HTML代码为
<iewc:treeview id=treeview autoselect=false shoplus=true showlines=true expandlevel= runat=server>
<iewc:treenode text=科目 >
<iewc:treenode text=语文 />
<iewc:treenode text=数学 />
<iewc:treenode text=英语 />
</iewc:treenode>
</iewc:treeview>
autoselect=false当访问者在treeview控件中对节点进行定位时可以使用键盘上的箭头来进行定位属性值为false则不允许这样做
Showplus=true当两个节点收到一起的时候你可以显示一个加号(+)访问者就知道这个节点可以展开该属性值为true将使用加号否则不使用
Showlines=true在一个treeview控件中的两个节点之间可以显示一些线长为true显示
Expandlevel=用来定义treeview控件的层次结构展开的级别数
navigateurl点击节点时的跳转网址
如
<iewc:treeview id=treeview runat=server>
<iewc:treenode text=喜爱的站点 >
<iewc:treenode text=中国DOTNET俱乐部 navigateurl= />
<iewc:treenode text=国家基础教育资源网 navigateurl=htt:// />
</iewc:treenode>
</iewc:treeview>
index获取树节点在树节点集合中的位置
nodes获取分配给树视图控件的树节点集合
parent获取或设置控件的父容器
selectednode获取或设置当前在树视图控件中选定的树节点
text获取或设置在树节点标签中显示的文本
expand展开树节点
clear清空树
remove移除当前树节点
checked用以指明该树节点是否处于选中状态
四简单示例
对左边树形结构进行选择在右边表格中查询显示结果
说明
SelectedIndexChange事件是对树结构进行选择时产生的还有一个触发条件autopostback=true
例中数据库由SQL 建立
代码如下
Imports SystemData
Imports SystemDataSqlClient
Public Class tree
Inherits SystemWebUIPage
Protected WithEvents Button As SystemWebUIWebControlsButton
Protected WithEvents DataGrid As SystemWebUIWebControlsDataGrid
Protected WithEvents Label As SystemWebUIWebControlsLabel
Protected WithEvents Label As SystemWebUIWebControlsLabel
Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
Dim strconnection As String = server=zln\netsdk;uid=sa;pwd=sa;database=english
Dim conn As New SqlConnection(strconnection)
connOpen()
Dim sql As String = select * from zlk where kemu= & Session(node)ToString &
Dim cmd As New SqlCommand(sql conn)
Dim da As SqlDataReader
da = cmdExecuteReader
DataGridDataSource = da
DataGridDataBind()
End Sub
Private Sub TreeView_SelectedIndexChange(ByVal sender As Object ByVal e As MicrosoftWebUIWebControlsTreeViewSelectEventArgs) Handles TreeViewSelectedIndexChange
Dim ndsel As New MicrosoftWebUIWebControlsTreeNode()
ndsel = TreeViewGetNodeFromIndex(TreeViewSelectedNodeIndex)
Session(node) = ndselText
End Sub
End Class