Аз съм бил на работа по това, което надявам се, ще бъде най-освободен CodePlex проект, който предвижда хубаво интегрирана малко уеб компоненти да говорим помежду си чрез доставчик/потребителски връзки с цел проучване на сайт на SharePoint под завивките. (Това със сигурност е направено преди, но това е един проект обучение колкото е нещо друго). Това е писано да бъде заместител на windows explorer преглед на SharePoint 2010 библиотеки с документи.
Кодът има обичайните рекурсивни призовавам SPWeb и SPLists от дадена начална точка. Обектът, който прави всички че преминаващи изгражда XML низ, който изглежда нещо подобно:
<sitecollection url =’HTTP://demo2010a:9090′>
<уеб
заглавие = "Здравейте Световната пясък"
Шаблон = "сайт за екипи за бързо организиране, Автор, и споделяне на информация, БЛА БЛА БЛА "><списък
заглавие = "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 - 877c - 41c 0-9063-b9612be80d5e’>
</списък></уеб>
</sitecollection>
Аз очаквам да чисти, че XML преди всичко е казано и направено.
Аз искам да в крайна сметка да получите тази информация до и в Treeview контрол. Не точно земята разбиващ неща.
Предизвикателството, взех тук е да се свържете дървовидния изглед към контрол на XML източник на данни вместо ръчно изграждане на моя treenodes, като преминават през дървото. Направих това, отчасти, защото аз съм умишлено вземане на нещата по-трудно за себе си (Това е един проект за обучение в крайна сметка) и отчасти, защото аз имам тази неясна представа, че изграждането на възли от дървото, като преминават през дървото не е добра идея в дългосрочен план.
Проблемът с този подход е, че Treeview контрол не знае за добрите качества на интересни възли като "списък" или "web", така тя показва тази продукция по подразбиране:
Това не е полезно. Това е мястото, където помага на TreeNodeBinding клас. Мога да използвам това да кажа Treeview контрол как тя трябва да се тълкува XML. Ето един пример:
tnb = нов TreeNodeBinding();
tnb.DataMember = "списък"; // Това е на етикета в xml за сайт.
tnb.TargetField = "listid";
tnb.ValueField = "заглавие";
tnb.ToolTipField = "Шаблон";
Този задължителен казва treeview, че когато се установи, <списък> възел в XML, прилага подвързия за TargetField, ValueField и ToolTipField. През май ап, тези карта както следва:
- TargetField: Когато някой кликне върху възел стойност, Това е това, което вие ще получите за SelectedNode.Value. Това е да не се бърка с...
- ValueField: Това е това, което искате Treeview да покаже на потребителя.
- ToolTipField: Стойността от XML, които искате като пояснение.
Добави, че TreeNodebinding към изгледа на дървото DataBindings и вие получите изход подобен този:
Аз ще имат повече за всичко това продължи по проекта и в крайна сметка това поставени в Codeplex.
</край>
Следвайте ме на Twitter в http://www.twitter.com/pagalvin