在.NET開發中靈活使用TreeView控制項

來源:互聯網
上載者:User
treeview|控制項   ASP.NET真正有用的特性就是其可擴充性。世界各地的開發人員都可以建立自己的自訂控制項,這種自訂控制項可以方便地在你自己的過程中進行定義。其中,Internet Explorer Web Controls就是由微軟公司在標準的ASP.NET控制項之外建立的這樣一個集合。

  Windows資源管理員中的磁碟機和其下的檔案及檔案夾就是按照一種階層來安排的,在這個控制項集中有一個treeview控制項為我們提供了一種按階層顯示資訊的方式。treeview控制項包含了稱做“節點”(node)的一些條目的一個列表。每一個節點都可以有自己的節點集合,從而提供了一種更深層的資料定義。每個節點都可以被摺疊起來,從而允許訪問者在一個treeview控制項中尋找,只看他所感興趣的那一級的資料。就像Windows的資源管理員一樣。

  首先得明確一點就是測試的環境,只要環境正確,接下來的工作就很輕鬆了:

  要測試該控制項,得有一個叫IE WebControls的檔案,具體的檔案可以點擊這裡下載或到微軟的網站去下載。

  按照他提供的方法進行安裝。如有不清楚,請仔細看清楚他的readme文檔。

  這裡跳過下載方法,直接進入環境的配置:

  IE Web Controls

  1、雙擊安裝完成,預設:系統硬碟:\program files\IE Web Controls目錄下。

  2、運行“程式——Microsoft Visual Studio.NET 2003 ——Visual Studio.NET 工具 ——Microsoft Visual Studio.NET 2003 命令提示字元”,進入到IE Web Control 安裝目錄。

  3、運行build.bat 。

  4、運行xcopy /s /i .\build\Runtime (網站根目錄,預設系統硬碟):\Inetpub\wwwroot\webctrl_client\1_0 /y 。

  在”工具箱——web表單“單擊右鍵,選擇“添加/移除項...”,在彈出對話方塊中選擇.net framwork 組件,單擊“瀏覽”,找到IE WebControl.DLL 檔案,添加上即可。

  這樣就配置好了運行環境。接下來進行實操作階段了。

   一、定義TreeView控制項

  代碼拷貝框

'匯入名稱空間
<%@ import namespace="Microsoft.web.UI.webcontros"%>
'註冊這個名稱空間並為其給定一個TagPrefix,以便於對這個控制項陳列庫中的控制項進行定義
<%@ register tagprefix = "iecontrols"
namespace="Microsoft.web.UI.webcontrols"
assembly="microsoft.web.UI.webcontrols"
%>
'設定好指令後,就可以定義下面這樣的一個treeview控制項了
<iecontrols:treeview
id="tvbasic"
autoselect="false"
shoplus="true"
showlines="true"
expandlevel=2
runat="server"

----------
</idcontrols:treeview>
  下面來解釋一下相應代碼:

autoselect = "false"
  當訪問者在TreeView控制項中對節點進行定位時,可以使用鍵盤上的箭頭來進行這種定位.當這個TreeView控制項的autoselect屬性值設為TRUE時,可以使用鍵盤上的鍵來在treeview控制項中滾動,以選聶一個條目.如果設定為false的話,則不允許這樣做.

showplus="true"
  當一個treeview控制項中的兩個節點收到一起的時候,你可以顯示一個加號(+),訪問者就知道這個節點可以展開.通過設定showplus屬性,你可以控制在這個位置是否顯示加號.如果這個屬性值設為true將使用加號;否則不使用.

showlines="true"
  在一個treeview控制項中的兩個節點之間,可以顯示一些線條,通過設定showlines屬性,你可以控制是否顯示這樣的線條.

Expandlevel=2
  這個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=2
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="ASP.NET編程">
<iecontrols:treenode text="Dotnet技術網" />
<iecontrols:treenode text="asp.net"/>
</iecontrols:treenode>
<iecontrols:treenode text="程式員大本營" />
</iecontrols:treenode>
</iecontrols:treenode>
  其中,定義了一個兩級的節點.這個樹狀檢視中包含了"設計類網站"和"編程類網站"這二個大節點,而"編程類網站"中又有兩個子節點"ASP編程"和"asp.net編程",其中每個子節點又都定義了其他的節點.

  要注意包含其他節點的treenode控制項和獨立的treenode控制項之間的差別.當一個treenode控制項中還有其它treenode控制項時,這些子控制項在其父控制項的開始和結束標記之間進行定義:

<iecontrols:treenode text="">
</iecontrols:treenode>
  但對於一個獨立的treenode控制項來說,其開始和結束標記是自包含的:

<iecontrols:treenode text="" />
  當頁面首次載入時,這就是整個視圖節點的展開情況.由於這裡的expandlevel屬性值設為2,因此將顯示到所有層級上的節點.此外還要注意的是,由於showlines屬性和showplus屬性都為true,因此在所有顯示的這個視圖中,串連節點間的線條和串連框都顯示出來.

   "我常去的網站"是當前選中的節點項.訪問者可以敲擊斷行符號,或者在這個節點上點擊滑鼠.然後,訪問者可以使用鍵盤上的箭頭來沿著樹狀檢視的階層進行定位。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。