轉貼 利用Treeview實現樹形列表

2021-03-31 17:33:30 字數 2412 閱讀 2400

以前,在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....