浏覽時有時會看到一些網站在左邊采用類似資源管理器的樹形結構在樹形結構中單擊在右邊顯示內容層次清晰且方便快捷本文主要介紹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 System
Data
Imports System
Data
SqlClient
Public Class tree
Inherits System
Web
UI
Page
Protected WithEvents Button
As System
Web
UI
WebControls
Button
Protected WithEvents DataGrid
As System
Web
UI
WebControls
DataGrid
Protected WithEvents Label
As System
Web
UI
WebControls
Label
Protected WithEvents Label
As System
Web
UI
WebControls
Label
Private Sub Button
_Click(ByVal sender As System
Object
ByVal e As System
EventArgs) Handles Button
Click
Dim strconnection As String =
server=zln\netsdk;uid=sa;pwd=sa;database=english
Dim conn As New SqlConnection(strconnection)
conn
Open()
Dim sql As String =
select * from zlk where kemu=
& Session(
node
)
ToString &
Dim cmd As New SqlCommand(sql
conn)
Dim da As SqlDataReader
da = cmd
ExecuteReader
DataGrid
DataSource = da
DataGrid
DataBind()
End Sub
Private Sub TreeView
_SelectedIndexChange(ByVal sender As Object
ByVal e As Microsoft
Web
UI
WebControls
TreeViewSelectEventArgs) Handles TreeView
SelectedIndexChange
Dim ndsel As New Microsoft
Web
UI
WebControls
TreeNode()
ndsel = TreeView
GetNodeFromIndex(TreeView
SelectedNodeIndex)
Session(
node
) = ndsel
Text
End Sub
End Class
From:http://tw.wingwit.com/Article/program/net/201311/11436.html