以前,在web頁面中如果想使用樹形控制項的話,往往會有些麻煩,有時甚至要自己寫**來達到用樹形列表顯示資料的目的。在asp.***中,我們可以很方便地使用由微軟提供的inter*** exploer web controls控制項來實現樹形列表。在微軟提供的這套inter*** exploere web controls控制項集合中,包括有multipage,tabstrip,*******,treeview控制項。在這篇文章中,我們來看在asp.***中如何使用treeview控制項和xml來實現樹形列表。
微軟的這套控制項可以在http://asp.***/iewebcontrols/download.aspx?tabindex=0&tabid=1
在vs.***中新建乙個web工程,之後在工具箱中,滑鼠右鍵彈出的選單中,選擇「新增新項」,在自定義工具箱中,選擇treeview控制項(注意選擇的是命名空間為microsoft inter*** exploere web control的命名空間),按確定後,就可以在工具箱中出現treeview控制項了。
接著,將treeview控制項拖拉到窗體中,切換到html檢視,這時會發現有如下**:
<%@ register tagprefix="ie"
namespace="microsoft.web.ui.webcontrols"
assembly="microsoft.web.ui.webcontrols" %>
當然,你可以改變tagprefix的標記值,比如,改為foobar,那麼以後在引用treeview控制項時,就用如下方式引用:
現在,我們可以通過點選treeview控制項的屬性框中的nodes屬性,來為該樹新增各類結點了,由於比較簡單,這裡不詳細講述。下面是新增完各類結點後的**:
其中我們特別注意一下expanded="true"中的expanded屬性,該屬性當被設定為true時,則當頁面被裝載時,樹形控制項被全部展開。
以上是在設計時,靜態新增資料到樹形控制項的方法。而由於xml實質上也是以樹形結構來表示資料的結構,因此,就可以通過使用xml檔案繫結到樹形控制項的方法,來動態載入資料到控制項中去,其中有兩種方法可以實現:
1)另外寫乙個符合treeview格式的xml檔案
2)通過xsl將xml進行轉換。
先來看下第一種方法,建乙個xml檔案作為例子,命名為asp***books.xml:
<?xml version="1.0" encoding="utf-8"?>
teach yourself active server pages 3.0 in 21 days
mitchell
atkinson
1999
designing active server pages
mitchell
2000
asp.***: tips, tutorials, and code
mitchell
mack
walther
seven
anders
nathan
wahlin
2001
asp unleashed
walther
1998
如果我們使用第一種方法,必須對xml進行重寫,用以下的形式表示,才能繫結到樹形控制項中去。
...就是說,根結點必須是treenodes(大小寫都無所謂),每個子結點必須以的形式排列。於是,我們對原來的xml檔案改寫為如下的形式:
<?xml version="1.0" encoding="utf-8"?>
〈/treenodes>
增加以下**:
這樣就將該xml檔案繫結到樹形控制項中去了,執行後可以看到結果:
asp.*** books
teach yourself active server pages 3.0 in 21 days
designing active server pages
asp.***: tips, tutorials, and code
programming asp.***
可以看到,使用第一種方法的確比較麻煩,不能對xml的結點進行篩選或者其他操作。而如果使用第二種方法的xsl,則可以根據需要隨時對原來的xml進行格式的控制,十分方便。
在使用xsl時,可以用如下的方法對樹形控制項進行繫結:
其中,treenodexsltsrc的屬性中指定要轉換的xsl檔案,我們設計的xsl檔案如下:
在上面的xsl中,我們通過形如
的屬性設定,提取xml檔案中每個結點的值,將其賦值給予treenode的text屬性中。當然,也可以在xsl中使用xpath等設定要顯示的結點。
執行後,結果同樣與用第一種方法的一樣,能正確顯示樹形控制項,而且靈活性比較高。
利用Treeview實現樹形列表
以前,在web頁面中如果想使用樹形控制項的話,往往會有些麻煩,有時甚至要自己寫 來達到用樹形列表顯示資料的目的。在asp.net中,我們可以很方便地使用由微軟提供的internet exploer web controls控制項來 實現樹形列表。在微軟提供的這套internet exploere w...
TreeView實現雙擊修改樹結點名稱
private point pi 定義乙個座標變數 treerule 為treeview的name private void treerule mousedown object sender,mouseeventargs e 當滑鼠指標位於控制項上並按下滑鼠鍵時發生 private void tre...
C 遞迴實現Treeview
無意發現在網上很剛學c 的朋友們都在找關於c 如何遞迴實現treeview的繫結,見網上很多例子都比較深奧,我特意寫了個比較簡單易懂的例子幫助大家了解c treeview的操作與遞迴的實現.效果圖 一 建立資料庫和資料表 area 二 建立areamanage專案 專案結構 以下是各個類檔案的 1....