標記檔案: 樹狀檢視

使用 ASP.NET Treeview 控制項中 TreeNodeBinding

我一直對我希望將很快公佈 CodePlex 提供了很好的集成的大量的互相交談通過探討下蓋的 SharePoint 網站供應商和消費者連接的 web 部件的專案。  (這當然做過, 但這是一個學習專案,那麼什麼都重要).  這是註定的 windows 資源管理器視圖的 SharePoint 的更換 2010 文件庫.

該代碼有通常的遞迴呼叫下來 SPWeb 和 Splist 從給定的起始點。  不會,遍歷的物件生成了一個 XML 字串,看上去像這:

<sitecollection url =’http://demo2010a:9090′>
 
<web
     標題 = 你好世界沙箱 
     範本 =' 為快速組織的小組網站, 作者, 和共用資訊, 等等 '>

     <清單
        標題 ='BCC_Health_Services_FAQs’
        範本 ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</清單>

     <清單
        標題 = 'BCC_Notifications' 
        範本 = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877-41 c 0-9063-b9612be80d5e’>
     </清單>

  </web>

</sitecollection>

我期望要清潔了之前所有, XML 是說和做.

我想要爬,走進一個 Treeview 控制項最終獲取該資訊。  不正是地球粉碎的東西.

我把這裡的挑戰是要連接到 XML 資料來源控制項而不是手動建立我的樹,如我遍歷樹的樹狀檢視。  我做這部分是因為我在故意做的事情上自己更難 (這畢竟是一個學習專案) 也有部分是因為我有這種模糊的概念,建立樹節點作為我遍歷樹長遠來說不是一個好主意.

這種方法的問題是 Treeview 控制項並不知道有關的有趣像"清單"或"網站"節點上的良好特性,所以它在預設情況下顯示此輸出:

 

image

這不是很有用的。  這是哪裡的 TreeNodeBinding 類可以説明。  我可以用它來告訴 Treeview 控制項它應如何解釋 XML。  下面是一個示例:

tnb = 新 TreeNodeBinding();
tnb。DataMember ="名單"; // 這是在為一個網站的 xml 標籤.
tnb。TargetField ="listid";
tnb。ValueField ="標題";
tnb。ToolTipField ="範本";

此綁定告訴樹狀檢視,當它找到時 <清單> 在 XML 中的節點, 應用 TargetField 的綁定, ValueField 和 ToolTipField。  在可能的應用程式, 這些地圖,如下所示:

  • TargetField: 當有人點擊一個節點值, 這是 SelectedNode.Value 你會得到什麼。  這並不是與混淆...
  • ValueField: 這就是你要的樹狀檢視以顯示給使用者.
  • ToolTipField: 中的值的 XML,您希望作為工具提示.

添加到樹狀檢視中的資料繫結和你 TreeNodebinding 獲取輸出像這樣:

 

image

我會更對所有這一切,我繼續在該專案上,最終把這個貼在 Codeplex 上.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin