Turn on more accessible mode
Skip Ribbon Commands
Skip to main content
Turn on Animations

Internet Explorer WebControls para SharePoint - 03

WebParts


Otro de los controles incluidos en la colección de IE WebControls es una "Vista de Árbol" (TreeView) que se puede usar para WebParts (usando las modificaciones mostradas en la primera parte de esta serie de artículos)
Autor: Gustavo

Información sobre como recompilar el WebControl para ser utilizado en SharePoint se encuentra en la primera parte de la serie de artículos: Internet Explorer WebControls para SharePoint - 01

Primero defina el Árbol, y cree una instancia de el:

TreeView myArbol;

protected override void CreateChildControls()
{
   myArbol = new TreeView();
   Controls.Add(myArbol);
}

En el evento "RenderWebPart" se puede crear ahora la raíz y agregarla a la colección de nudos del Árbol:

TreeNode myRaiz = new TreeNode();
myRaiz.Text = "Un titulo";
myRaiz.ImageUrl = "/_layouts/images/globe.gif";
myRaiz.Expanded = true;
myArbol.Nodes.Add(myRaiz);

AgregarNudos(myRaiz, myWeb);

myTree.RenderControl(output);

En el ejemplo (cuyo código se puede bajar desde este mismo sitio) se ha creado un Árbol que muestra todos los sitios bajo el sitio en donde esta la WebPart. Para realizar esto se ha creado la función recursiva "AgregarNudos", que utiliza una referencia hacia el SPWeb del sitio de partida:

SPSite mySite = SPControl.GetContextSite(Context);
SPWeb myWeb = mySite.OpenWeb();

private void AgregarNudos(TreeNode NudoPariente, SPWeb WebPariente)
{
   SPWebCollection myWebs = WebPariente.GetSubwebsForCurrentUser();

   foreach(SPWeb mySub in myWebs)
   {
     TreeNode myNudo = new TreeNode();
     myNudo.Text = mySub.Title;
     myNudo.ImageUrl = "/_layouts/images/asp16.gif";
     myNudo.NavigateUrl = mySub.Url;
     myNudo.Target = "";
     NudoPariente.Nodes.Add(myNudo);

     //Rutina recursiva
     AgregarNudos(myNudo, mySub);
   }
}

Entre las propiedades del objeto Nudo se pueden encontrar las imágenes a utilizar, si el nudo se debe presentar abierto o no, etc.

El resultado es un Árbol con todos los sitios bajo el sitio inicial:

Aqui puede encontrar el codigo de la WebPart