Tag Archives: TreeNodeBinding

Treballant amb TreeNodeBinding en el Control ASP.NET Treeview

He estat treballant en el que espero serà un aviat-alliberat CodePlex projecte que proporciona una mica bonic integrat d'elements web parlant-se mútuament mitjançant connexions proveïdor/consumidor amb la finalitat de descobrir un lloc del SharePoint sota les cobertes.  (Això sens dubte s'ha fet abans, però aquest és un projecte d'aprenentatge tant com qualsevol altra cosa).  Aquest pretén ser un reemplaçament per a la vista d'Explorador de windows de SharePoint 2010 biblioteques de documents.

El codi té el recursiu habitual anomenar avall de SPWeb i SPLists d'una partida determinat punt.  L'objecte que fa recórrer tots els que s'acumula una cadena XML que mira alguna cosa com això:

<SiteCollection url =’http://demo2010a:9090′>
 
<web
     títol = "Hola món Sandbox" 
     Plantilla = "un lloc per equips per pressa organitzar, autor, i compartir informació, BLA, BLA, BLA, BLA '>

     <llista
        títol ='BCC_Health_Services_FAQs’
        Plantilla ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</llista>

     <llista
        títol = "BCC_Notifications" 
        Plantilla = "CustomList" 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </llista>

  </web>

</SiteCollection>

Esperar netejar fins que XML abans tot està dit i fet.

Vull, en definitiva, aconseguir que la informació amunt i en un control Treeview.  No és exactament la terra destrossant coses.

El repte que vaig prendre d'aquí es va connectar la vista d'arbre a un control d'origen de dades XML en lloc de construir manualment el meu treenodes com vaig travessar l'arbre.  Feia això en part perquè estic deliberadament fent les coses més difícils sobre mi mateix (Aquest és un projecte d'aprenentatge després de tot) i en part perquè tinc aquesta noció imprecisa que creïn nodes arbre com vaig travessar l'arbre no és una bona idea per al llarg termini.

El problema amb aquest enfocament és que el control Treeview no sap sobre els atributs bons en els nodes interessants com "llista" o "web" així ho demostra aquesta sortida per defecte:

 

image

Que no és útil.  Això és on ajuda a la classe TreeNodeBinding.  Pot utilitzar això per explicar el control Treeview com cal interpretar l'XML.  Heus aquí un exemple:

tnb = nou TreeNodeBinding();
tnb.DataMember = "llista"; // Aquest és l'etiqueta de el xml per a un lloc.
tnb.TargetField = "listid";
tnb.ValueField = "títol";
tnb.ToolTipField = "Plantilla";

Aquesta unió diu el treeview que quan troba un <llista> node de l'XML, aplicar les fixacions per a TargetField, ValueField i ToolTipField.  En maig app, Aquestes mapa següent:

  • TargetField: Quan algú fa clic en un valor de node, Això és què aconseguirà per SelectedNode.Value.  Això no és ser confós amb...
  • ValueField: Això és el que vol el Treeview per mostrar a l'usuari.
  • ToolTipField: El valor de l'XML que voleu com un indicador de funció.

Afegir que TreeNodebinding a DataBindings de vista d'arbre i obtenir sortida com aquesta:

 

image

Tindré més a tot això mentre continuï en el projecte i finalment posar això en Codeplex.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin