Я працюю на те, що я сподіваюся, буде на незабаром випустили CodePlex проект, який забезпечує вдале інтегрованих веб-частин говорити один з одним за допомогою постачальника/побутова з'єднань з метою вивчення сайту SharePoint під ковдрою. (Це безумовно було зроблено перед, але це проект навчання, як все інше). Це означало для заміни для подання провідника windows з SharePoint 2010 бібліотеки документів.
Код має звичайний рекурсивний називають вниз до SPWeb і SPLists від даного відправна точка. Об'єкт, який робить все, що перетинаючи накопичується XML рядок, який виглядає приблизно так:
<колекція _ сайтів url =’http://demo2010a:9090′>
<Web
заголовок = "Hello World пісочниці"
Шаблон =' сайт для команди, щоб швидко впорядкувати, Автор, і поділитися інформацією, БЛА БЛА БЛА '><Список
заголовок ='BCC_Health_Services_FAQs’
Шаблон ='CustomList’
ідентифікатор списку =’http://demo2010a:9090/helloworldsandbox[Делім]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
</Список><Список
заголовок = 'BCC_Notifications'
Шаблон = 'CustomList'
ідентифікатор списку =’http://demo2010a:9090/helloworldsandbox[Делім]5a5a13d1 - 877-c - 41c-0-9063-b9612be80d5e’>
</Список></Web>
</колекція _ сайтів>
Я очікую очистити, що XML, перш ніж все сказано і зроблено.
Я хочу, щоб в кінцевому підсумку отримати цю інформацію вгору і в Treeview контролю. Не зовсім Земля нищівного речі.
Завдання, я взяв тут було з'єднуватися на ієрархічній панелі елемента керування джерела даних XML, замість того, щоб вручну нарощування мій treenodes, як я Траверс дерево. Я зробив це, почасти тому, що я навмисно роблю речі важче на себе (Це навчання проект врешті-решт) і почасти тому, що я маю цьому розпливчасто поняття, що нарощування дерево вузлів, як я Траверс дерево не є гарною ідеєю у довгостроковій перспективі.
Проблема з цим підходом полягає в тому, що Treeview контролю не знають про атрибути хороший на цікавих вузлів, як "список" або "мережі", так що він показує цьому виводі за промовчанням:
Це не корисно. Це де допомагає TreeNodeBinding класу. Я можу використовувати це розповісти Treeview контролю, як це слід інтерпретувати XML. Нижче наведено приклад:
tnb = новий TreeNodeBinding();
tnb.DataMember = "список"; // Це етикетці у форматі xml для сайту.
tnb.TargetField = "ідентифікатор списку";
tnb.ValueField = "Назва";
tnb.ToolTipField = "Шаблон";
Цей зв'язок говорить в treeview, що коли він знаходить в <Список> вузол в XML-ФАЙЛІ, застосувати прив'язки для TargetField, ValueField і ToolTipField. У травні app, Ці карти наступним чином:
- TargetField: Коли користувач натискає на вузол значення, Це те, що ви отримаєте за SelectedNode.Value. Це не слід плутати з...
- ValueField: Це те, що ви хочете Treeview для відображення користувачу.
- ToolTipField: Значення з XML, який ви хочете, як спливаюча підказка.
Додати, що TreeNodebinding на ієрархічній панелі DataBindings і ви отримаєте виводу наступним чином:
Я буду мати більше на все це, як я продовжити проект і в кінцевому підсумку покласти це на Codeplex.
</кінець>
Йди за мною на Twitter в http://www.twitter.com/pagalvin
Pingback: Tweets відзначити, що працюють з TreeNodeBinding в елементі керування ASP.NET Treeview «Paul Galvin SharePoint простір -- Topsy.com
Привіт Павло,
Я просто перевірив, що сам. Він працював як далеко, як ви описали, що навіть якщо я не отримаю цю інформацію з вашого сайту (Як жаль :-)).
Я зацікавлений в тому, Я постарався зробити структура ледачий навантаження з PopulateOnDemand майна. В іншому випадку навантаження в treeview цілісної структури в цілому, який я хотів би уникнути. Ця властивість PopulateOnDemand, здається, не мають ніякого ефекту.
Також в treeview не зберегти будь-які розгорнути / згорнути державний інформації.
Можна вирішити ці проблеми?
З повагою
Хольгер
Я знаю, що ти написав цей коментар давно. Вибачте за ніколи не відповідає. Я припускаю, що ви отримали ваше рішення давно вже :).