Ik heb gewerkt aan wat ik hoop een snel-released CodePlex project waarmee een mooi geïntegreerde stukje van webonderdelen met elkaar praten via provider/consument verbindingen voor het verkennen van een sharepointsite onder de dekens. (Dit is zeker eerder gedaan, maar dit is een project leren zo veel als iets anders). Dit is bedoeld als een vervanging voor de weergave van windows verkenner van SharePoint 2010 documentbibliotheken.
De code heeft de gebruikelijke recursieve bellen naar beneden van de SPWeb en SPLists vanuit een bepaalde voorsprong punt. Het object dat alle dat doorlopen doet bouwt een XML-tekenreeks die er als volgt ziet:
<sitecollection url =’http://demo2010a:9090′>
<Web
titel = 'Hallo wereld Sandbox'
Sjabloon =' een site voor teams om te snel ordenen, Auteur, en delen van informatie, BLAH BLAH BLAH'><lijst
titel ='BCC_Health_Services_FAQs’
Sjabloon ='CustomList’
ListID =’http://demo2010a:9090/helloworldsandbox[Delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
</lijst><lijst
titel = 'BCC_Notifications'
Sjabloon = 'CustomList'
ListID =’http://demo2010a:9090/helloworldsandbox[Delim]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
</lijst></Web>
</sitecollection>
Ik verwacht om schoon te maken dat XML voordat alles is gezegd en gedaan.
Ik wil graag uiteindelijk die informatie en in een besturingselement Treeview. Niet precies aarde verbrijzelen spullen.
De uitdaging die ik nam op hier was de boomstructuurweergave verbinden met een besturingselement van de XML-gegevensbron in plaats van handmatig opbouwen mijn treenodes als ik door de boom bladeren. Ik deed dit deels omdat ik bewust van dingen moeilijker op mezelf maken ben (Dit is immers een project leren) en deels omdat ik heb dit vaag begrip dat boomknopen opbouwen als ik door de boom bladeren is niet een goed idee voor de lange termijn.
Het probleem met deze aanpak is dat het besturingselement Treeview niet over de goede kenmerken op de interessante knooppunten als "list" of "web weet" dus het toont deze output standaard:
Dat is niet nuttig. Dit is waar de TreeNodeBinding klasse helpt. Ik kan dit gebruiken om het besturingselement Treeview vertellen hoe het moet interpreteren het XML-bestand. Hier is een voorbeeld:
TNB = nieuwe TreeNodeBinding();
TNB.DataMember = "lijst"; // Dit is het label in de xml voor een site.
TNB.TargetField = "listid";
TNB.ValueField = "titel";
TNB.ToolTipField = "Sjabloon";
Deze binding vertelt de treeview dat wanneer het vindt een <lijst> knooppunt in de XML, de bindingen voor TargetField toepassen, ValueField en ToolTipField. In mei app, deze kaart als volgt:
- TargetField: Wanneer iemand klikt op een knooppunt waarde, Dit is wat je krijgt voor SelectedNode.Value. Dit is niet te worden verward met…
- ValueField: Dit is wat je wilt de Treeview weergeven voor de gebruiker.
- ToolTipField: De waarde van het XML-bestand dat u wilt gebruiken als een Tooltip.
Toevoegen dat de TreeNodebinding van de boomstructuurweergave DataBindings en u krijgen output als dit:
Ik zal meer over dit alles moeten als ik op het project blijven en uiteindelijk dit op Codeplex opgemaakt.
</einde>
Volg mij op Twitter op http://www.twitter.com/pagalvin
Pingback: Tweets dat werken met TreeNodeBinding in de ASP.net-Treeview Control «Paul Galvin SharePoint ruimte noemen -- Topsy.com
Hallo Paul,
Ik heb net gecontroleerd dat mezelf. Het werkte als u dat beschreven zelfs als ik niet die informatie van uw site krijgen (Jammer :-)).
Het punt dat ik ben geïnteresseerd in is, Ik heb geprobeerd om de structuur lui laden met de PopulateOnDemand eigenschap. Anders de treeview laden de volledige structuur in een geheel dat ik graag wil vermijden. Deze eigenschap die populateondemand lijkt niet te hebben geen effect.
Ook de treeview niet opslaan elke uitvouwen / samenvouwen statusgegevens.
U heeft deze kwesties opgelost?
Groeten
Holger
Ik weet dat u deze commentaar gepost een lange tijd geleden. Sorry voor nooit reageren. Ik neem aan dat u uw solutie sinds lang got :).