我一直對我希望將很快公佈 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 控制項並不知道有關的有趣像"清單"或"網站"節點上的良好特性,所以它在預設情況下顯示此輸出:
這不是很有用的。 這是哪裡的 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 獲取輸出像這樣:
我會更對所有這一切,我繼續在該專案上,最終把這個貼在 Codeplex 上.
</結束>
跟我在 Twitter 上 http://www.twitter.com/pagalvin
pingback的: 提到 ASP.NET Treeview 控制項 «Paul 爾文 SharePoint Space 中進行 TreeNodeBinding 工作用的推文 -- Topsy.com
嗨保羅,
我已經查過了只是我自己. 它擔任你描述,即使不得到您的網站的資訊 (真可惜 :-)).
我很感興趣的一點是, 我試圖使結構變得懶惰載入與 PopulateOnDemand 屬性. 否則 treeview 載入完整的結構中,以避免整個. PopulateOnDemand 似乎沒有任何影響此屬性.
樹狀檢視也沒有保存任何展開/折疊狀態的資訊.
你解決這些問題嗎?
問候
霍爾格 ·
我知道您發佈此注釋很久以前. 道歉並不回應. 我假設你長久以來得到您的解決方案 :).