Delo z TreeNodeBinding v ASP.NET Treeview Control

Sem delal na kaj upam, da bo kmalu izdal CodePlex projekt, ki zagotavlja lepo integrirano nekaj spletnih gradnikov, ki se pogovarjajo med sabo preko povezav ponudnika/potrošnikov glede raziskovanja na SharePointovo mesto pod odejo.  (To je zagotovo storiti pred, ampak to je več kot karkoli drugega projekt učenje).  To je pomenilo, da se nadomestilo za windows explorer pogled SharePoint 2010 knjižnice dokumentov.

Koda je običajno rekurzivni klic dol na SPWeb in SPLists iz danega začetni točki.  Predmet, to does, ki prečkajo gradi XML niz, ki izgleda nekako takole:

<SiteCollection url =’http://demo2010a:9090′>
 
<Web
     naslov = "Hello World Sandbox" 
     Predlogi = "mesto za ekipe hitro organizirati, Avtor, in izmenjavo informacij, BLAH BLAH BLAH ">

     <seznam
        naslov = "BCC_Health_Services_FAQs’
        Predlogi = "CustomList’
       
ListId =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</seznam>

     <seznam
        naslov = "BCC_Notifications" 
        Predlogi = "CustomList" 
        ListId =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </seznam>

  </Web>

</SiteCollection>

Pričakujem, da čist gor ki XML pred vse povedano in storjeno.

Želim, da bi končno dobili informacije in v Treeview control.  Ni ravno zemlja Lomljava stvari.

Izziv, sem vzel o tukaj je bil povezati kontrolnika vira podatkov XML namesto ročno vzpostavitev svoj treenodes, kot sem prečkala drevo v drevesnem pogledu.  Sem storil to, deloma zato, ker namerno delam stvari težje na sebi (To je projekt učenje po vsem) in deloma zato, ker imam to nejasno idejo, da izgradnjo vozlišč drevesa, kot sem prečkala drevo ni dobra ideja za dolgoročno.

Problem s tem pristopom je, da Treeview control ne ve o dobre lastnosti na zanimivo vozlišča kot "seznam" ali "splet", tako da kaže tej izhodni privzeto:

 

image

To ni koristno.  To je, kjer pomaga TreeNodeBinding razred.  Lahko uporabite to povedati Treeview control, kako naj razlagajo XML.  Tukaj je primer:

tnb = nov TreeNodeBinding();
tnb.DataMember = "seznam"; // To je oznaka pri xml za mesto.
tnb.TargetField = "listid";
tnb.ValueField = "naslov";
tnb.ToolTipField = "Predloge";

Ta vezava pove treeview, da, ko ugotovi, a <seznam> vozlišče v XML, uporablja vezi za TargetField, ValueField in ToolTipField.  V maju app, to naslednji zemljevid:

  • TargetField: Ko nekdo klikne na vozlišče vrednost, To je, kaj boste dobili za SelectedNode.Value.  To se ne sme zamenjati z...
  • ValueField: To je tisto, kar želite Treeview razpoložiti uporabniku.
  • ToolTipField: Vrednosti iz XML, ki ga želite kot opis.

Dodati, da TreeNodebinding DataBindings drevesni pogled in boste dobili izhod takole:

 

image

Bom moral bolj na vse to kot nadaljevanje projekta in sčasoma to pripravljeni na Codeplex.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

3 misli o "Delo z TreeNodeBinding v ASP.NET Treeview Control

  1. Pingback: Tweets se omenja dela s TreeNodeBinding v ASP.NET Treeview Control »Paul Galvin SharePoint Vesolje -- Topsy.com

  2. Holger

    Zdravo Paul,

    Pravkar sem preveril, da sam. Delovalo je kot vi popisovati, da tudi če ne dobijo informacij iz vaše strani (res škoda :-)).
    Zanima je, Si se potrudil, da struktura leni nakladanje z lastnostjo PopulateOnDemand. Sicer treeview naložite celotno strukturo v celoto, ki bi rad, da bi se izognili. Lastnost PopulateOnDemand se zdi, da nima nobenega vpliva.

    Tudi treeview ne shrani vse Razširi / strni informacije o stanju.

    Did rešiti ta vprašanja?

    Pozdrav

    Holger

    Odgovor
    1. Paul Galvin Prispevek avtor

      Vem, da si objavil ta komentar že davno. Žal nikoli ne odziva. Predvidevam, da si dobil vaš raztopina zdavnaj :).

      Odgovor

pusti odgovor

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *