Práca S TreeNodeBinding v ASP.NET Treeview Control

Bol som prácu na to, čo dúfam, že bude čoskoro-uvoľní CodePlex projekt, ktorý poskytuje trochu pekné integrovaného webových častí hovorí k sebe navzájom prostredníctvom pripojenia poskytovateľ a spotrebiteľa pre skúmanie lokality SharePoint pod krytov.  (To určite bolo vykonané pred, ale to je rovnako ako čokoľvek iného vzdelávania projekt).  Znamená to, že sa náhrada za zobrazenie programu Prieskumník windows SharePoint 2010 knižnice dokumentov.

Kód má obvyklé rekurzívneho volania nadol SPWeb a SPLists z danej počiatočný bod.  Objekt, ktorý má všetky že zasahujú hromadia XML reťazec, ktorý vyzerá nejako takto:

<sitecollection url =’http://demo2010a:9090′>
 
<Web
     názov = "Hello World pieskovisko" 
     Šablóna = "stránky pre tímy, aby rýchlo usporiadať, spisovateľ, a zdieľanie informácií, BLA BLA BLA ">

     <zoznam
        názov = "BCC_Health_Services_FAQs’
        Šablóna = "CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</zoznam>

     <zoznam
        názov = "BCC_Notifications" 
        Šablóna = "CustomList" 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
     </zoznam>

  </Web>

</sitecollection>

Očakávam čistiť hore, že XML pred všetko, čo povedal a urobil.

Chcem sa nakoniec si, že informácie nahor a do Treeview control.  Nie je presne Zeme otrasená veci.

Vzal som tu výzvu bolo pripojenie stromové zobrazenie zdroj údajov XML kontrolu namiesto manuálne budovanie mojej treenodes, ako prechádzať stromu.  Já to urobil, čiastočne preto, že som zámerne tvorby veci ťažšie na seba (je to koniec koncov learningový projekt) a čiastočne, pretože mať tento vágny pojem že vybudovanie strom uzly, ako prechádzať stromu nie je dobrý nápad pre dlhodobo.

Problém s týmto prístupom je, že Treeview control nevie o dobré atribúty na zaujímavé uzloch ako "zoznam" alebo "web", takže to ukazuje tento výstup v predvolenom nastavení:

 

image

To nie je užitočné.  To je, kde pomáha TreeNodeBinding triedy.  Môžete to použiť povedať Treeview control, ako by mala interpretovať XML.  Tu je príklad:

TNB Beninská = nová TreeNodeBinding();
TNB Beninská.DataMember = "zoznam"; // Je to označenie vo formáte xml pre lokalitu.
TNB Beninská.TargetField = "listid";
TNB Beninská.ValueField = "titul";
TNB Beninská.ToolTipField = "Šablóny";

Táto väzba hovorí treeview, že keď zistí <zoznam> uzol v súbore XML, uplatňovať väzby pre TargetField, ValueField a ToolTipField.  V máji app, tieto mapy takto:

  • TargetField: Keď niekto klikne na hodnotu uzla, to je to, čo dostanete na SelectedNode.Value.  To nie je možné zameniť s...
  • ValueField: To je to, čo chcete Treeview zobrazíte užívateľovi.
  • ToolTipField: Hodnota z XML, ktorý ako názov tlačidla.

Pridá, že TreeNodebinding stromové zobrazenie DataBindings a vy dostanete výstup takhle:

 

image

Budete mať o to viac ako pokračovať na projekte a nakoniec to dať hore na Codeplex.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

3 myšlienky na "Práca S TreeNodeBinding v ASP.NET Treeview Control

  1. Pingback: Tweets, že zmienka prácu s TreeNodeBinding v ASP.NET Treeview kontrolu «Paul Galvin SharePoint priestoru -- Topsy.com

  2. Holger

    Ahoj Pavla,

    Len skontrolovať, že sám. Fungovalo to ako si opísal, že aj keď nechcete dostať informácie z vašich stránok (to je škoda :-)).
    Mám záujem je, Snažil som sa urobiť štruktúru lenivý nakladanie s majetkom PopulateOnDemand. Inak treeview zaťaženie konštrukcii kompletný celok, ktorý by sa chceli vyhnúť. Táto vlastnosť PopulateOnDemand sa zdá, že nemá žiadny vplyv.

    Tiež treeview nie uložiť akékoľvek Rozbaliť / Zbaliť stavové informácie.

    Urobil vyriešiť tieto problémy?

    S pozdravom

    Holger

    Odpoveď
    1. Paul Galvin post autor

      Viem, že ste vyslaný tento komentár dávno. Ospravedlňujeme sa za nikdy reagovať. Predpokladám, že máš riešenie dávno :).

      Odpoveď

nechať odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *