Arquivos de etiquetas: Treeview

Traballando con TreeNodeBinding no control TreeView ASP.NET

Eu estiven a traballar no que eu espero que sexa a editado en breve CodePlex proxecto que ofrece un pouco agradable integrado de pezas web falar uns cos outros a través de conexións do provedor / consumidor coa finalidade de explotar un sitio SharePoint debaixo das cubertas.  (Este foi certamente facer antes, pero este é un proxecto de aprendizaxe, tanto como calquera outra cousa).  Este pretende ser un substituto para Windows Explorer vista do SharePoint 2010 bibliotecas de documentos.

O código ten a chamada recursiva habitual debaixo da SPWeb de e SPLists partir dun determinado punto de partida.  O obxecto que fai todo isto travesía constrúe unha cadea XML que é algo así:

<sitecollection url =’http://demo2010a:9090′>
 
<tea
     title = 'Ola Mundo Sandbox' 
     Template = 'O lugar para os equipos para organizar rapidamente, autor, e compartir información, Bla bla bla '>

     <lista
        title = 'BCC_Health_Services_FAQs’
        Template = 'CustomList’
       
ListId =’http://demo2010a:9090/helloworldsandbox[acción]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</lista>

     <lista
        title = 'BCC_Notifications' 
        Template = 'CustomList' 
        ListId =’
http://demo2010a:9090/helloworldsandbox[acción]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </lista>

  </tea>

</sitecollection>

Espero que limpar XML ante todo está dito e feito.

Quero chegar, finalmente, que a información anterior e nun control TreeView.  Non é exactamente a terra tremer cousas.

O reto que asumir aquí era para chamar a visualización de árbore para un control de fonte de datos XML en vez de construír manualmente os meus TreeNodes como percorrer a árbore.  Eu fixen iso en parte porque estou deliberadamente facer as cousas máis difíciles en min (este é un proxecto de aprendizaxe despois de todo) e en parte porque eu teño esa vaga noción de que a construción de nós de árbore que percorrer a árbore non é unha boa idea a longo prazo.

O problema con esta visión é que o control Treeview non sabe sobre os bos atributos en nós interesantes como "lista" ou "web" para que mostre esa saída por defecto:

 

image

Isto non é útil.  Este é o lugar onde a clase TreeNodeBinding axuda.  Podo usar isto para dicir o control Treeview como debe interpretar o XML.  Aquí está un exemplo:

TNB = new TreeNodeBinding();
tnb.DataMember = "list"; // Esta é a etiqueta en XML para un sitio.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

Esta conexión di o treeview que cando se atopa unha <lista> nó no XML, aplicaranse as conexións para TargetField, ValueField e ToolTipField.  En maio de aplicación, estes mapa do seguinte xeito:

  • TargetField: Cando alguén fai clic nun valor do nodo, iso é o que vai ter para SelectedNode.Value.  Isto non debe ser confundido co ...
  • ValueField: Isto é o que quere que o Treeview para mostrar ao usuario.
  • ToolTipField: O valor do XML que quere como unha información de ferramenta.

Engadir que TreeNodeBinding para DataBindings da exhibición de árbore e terá unha saída como esta:

 

image

Vou ter máis en todo isto como eu continuar no proxecto e, finalmente, poñer isto en Codeplex.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin