Jeg har arbejdet på hvad jeg håber bliver en snart frigivet CodePlex projekt, der giver en flot integreret bit af webdele taler til hinanden via udbyder og forbruger forbindelser med henblik på at udforske et SharePoint-websted under dynen. (Dette er helt sikkert blevet gjort før, men det er en læring projekt så meget som noget andet). Dette er tænkt som en erstatning for windows Stifindervisning af SharePoint 2010 dokumentbiblioteker.
Koden har den sædvanlige rekursive kalde ned SPWeb og SPLists fra en given startende punkt. Det objekt, der gør alle der gennemkører opbygger en XML-streng, der ser noget som dette:
<SiteCollection url =’http://demo2010a:9090′>
<Web
title = 'Hej verden sandkasse'
Skabelon =' et websted for hold hurtigt organisere, Forfatter, og dele oplysninger, BLAH BLAH BLAH "><liste
title ='BCC_Health_Services_FAQs’
Skabelon ='CustomList’
listID =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
</liste><liste
title = 'BCC_Notifications'
Skabelon = 'CustomList'
listID =’http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
</liste></Web>
</SiteCollection>
Jeg forventer at rydde op, at XML før alt er sagt og gjort.
Jeg vil i sidste ende får disse oplysninger op og ind i en Treeview control. Ikke ligefrem jorden rystende ting.
Den udfordring, jeg tog på her skulle tilsluttes en XML-datakilde kontrol i stedet for manuelt at opbygge min treenodes som jeg krydse træet i træstrukturen. Jeg gjorde dette, dels fordi jeg bevidst gør tingene sværere for mig selv (Dette er et projekt, læring efter alle) og dels fordi jeg har denne vage begreb at opbygge trænoderne som jeg krydse træet er ikke en god idé for på lang sigt.
Problemet med denne tilgang er, at kontrolelementet Treeview ikke ved om de gode attributter på de interessante noder som "liste" eller "web", så det viser dette output som standard:
Det er ikke nyttigt. Dette er, hvor klassen TreeNodeBinding hjælper. Jeg kan bruge dette til at fortælle Treeview kontrol hvordan det bør fortolke XML. Her er et eksempel:
tnb = ny TreeNodeBinding();
tnb.DataMember = "liste"; // Dette er etiketten i XML-koden for et websted.
tnb.TargetField = "listid";
tnb.ValueField = "titel";
tnb.ToolTipField = "Skabelon";
Denne bindende fortæller treeview, når den finder en <liste> node i XML-, anvende bindings for TargetField, ValueField og ToolTipField. I maj app, disse kort som følger:
- TargetField: Når nogen klikker på en nodeværdi, Dette er hvad du får for SelectedNode.Value. Dette er ikke at forveksle med...
- ValueField: Dette er hvad du vil Treeview skal vises til brugeren.
- ToolTipField: Værdien fra XML-filen, som du vil bruge et værktøjstip.
Tilføje, at TreeNodebinding til trævisningens DataBindings og du får output som dette:
Jeg vil have mere på alt dette som jeg videre med projektet og til sidst sætte dette op på Codeplex.
</slutningen>
Følg mig på kvidre på http://www.twitter.com/pagalvin