Tag Archives: TreeNodeBinding

Werk met TreeNodeBinding in die ASP.NET boomaansig Control

Ek werk op wat ek hoop sal binnekort vrygestel word CodePlex projek wat 'n mooi geïntegreerde bietjie web dele met mekaar te praat via die verskaffer / verbruiker verbindings vir die doel van die ondersoek van 'n SharePoint plek onder die komberse.  (Dit het beslis voorheen gedoen, maar dit is 'n leer-projek soveel as enigiets anders).  Dit is bedoel om 'n plaasvervanger vir die Windows Explorer siening van SharePoint 2010 dokument biblioteke.

Die kode het die gewone rekursiewe oproep af die SPWeb-'s en SPLists van 'n beginpunt.  Die voorwerp wat nie alles wat polygonisatie bou voort op 'n XML-string wat lyk iets soos hierdie:

<sitecollection url =’http://demo2010a:9090′>
 
<web
     title = "Hello World Sandbox ' 
     Sjabloon = "'n plek vir spanne om vinnig te organiseer, skrywer, en deel van inligting, Blah blah blah>

     <lys
        title = "BCC_Health_Services_FAQs’
        Sjabloon = "CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[Ek deel]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</lys>

     <lys
        title = "BCC_Notifications" 
        Sjabloon = "CustomList 
        listid =’
http://demo2010a:9090/helloworldsandbox[Ek deel]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </lys>

  </web>

</sitecollection>

Ek verwag om skoon te maak dat die XML voor al gesê en gedoen word.

Ek wil om uiteindelik daardie inligting kry en in 'n boom beheer.  Nie presies die aarde verbryseling dinge.

Die uitdaging wat ek hier het, was die verkenner te koppel aan 'n XML-data Bron beheer in plaas van die hand opbou my treenodes as ek deurkruis die boom.  Ek het dit deels omdat ek doelbewus dinge maak harder op myself (hierdie is 'n projek na alle) en deels omdat ek hierdie vae idee dat die opbou van boom nodes as ek deurkruis die boom nie 'n goeie idee vir die lang termyn.

Die probleem met hierdie benadering is dat die boomaansig beheer nie weet nie oor die goeie eienskappe op die interessante nodusse soos "lys" of "web" nie so dit wys hierdie produksie by verstek:

 

image

Dit is nie nuttig nie.  Dit is waar die TreeNodeBinding klas help.  Ek kan gebruik om die boomaansig beheer te vertel hoe dit die XML moet interpreteer.  Hier is 'n voorbeeld:

TNB = nuwe TreeNodeBinding();
tnb.DataMember = "Lys"; // Dit is die etiket in die XML vir 'n webwerf.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Sjabloon";

Hierdie binding vertel die boomaansig dat wanneer dit vind 'n <lys> node in die XML, die toepassing van die bindings vir TargetField, ValueField en ToolTipField.  In Mei inligting, hierdie kaart soos volg::

  • TargetField: Wanneer iemand druk op 'n node waarde, dit is wat jy kry vir SelectedNode.Value.  Dit is nie verwar word met ...
  • ValueField: Dit is wat jy wil hê die boomaansig te vertoon aan die gebruiker.
  • ToolTipField: Die waarde van die XML wat jy wil as 'n Tooltip.

Byvoeg dat TreeNodebinding aan die verkenner se DataBindings nie en jy kry die uitvoer soos hierdie:

 

image

Ek sal meer op al hierdie dinge as ek bly op die projek en uiteindelik sit dit op Codeplex.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin