Dynatree

=Dynatree= code  
 * Tree dinámico en jQuery
 * descargarlo de []
 * la versión Dynatree 1.2.2 funciona con jQuery 1.7.1 y jQuery UI 1.8.17
 * documentación: []

code code
 * poner los js y css extras necesarios
 * css: una carpeta skin con ui.dynatree.css y sus imágenes asociadas
 * js: jquery.cookie.js y jquery.dynatree.js
 * poner un div y en nuestro script.js que se arranca al cargar la página el siguiente script

$(function {    // Attach the dynatree widget to an existing element    // and pass the tree options as an argument to the dynatree function:    $("#tree").dynatree({ onActivate: function (node) { // A DynaTreeNode object is passed to the activation handler // Note: we also get this event, if persistence is on, and the page is reloaded. alert("You activated " + node.data.title); },       persist: true, children: [ // Pass an array of nodes. {title: "Item 1" }, { title: "Folder 2", isFolder: true, children: [ { title: "Sub-item 2.1" }, { title: "Sub-item 2.2" } ]               },                { title: "Item 3" } ]   }); }); code

Para usarlo en Umbraco con Ajax

 * usar lo que tenemos hecho de ajax: http://aspnetmvc.wikispaces.com/Ajax+en+Umbraco
 * crear razor y macro asociada AjaxTagsTree (que devuelve el json)
 * añadirla al datatype macro container
 * crear en content ajax/ajaxtagstree y en macro container poner AjaxTagsTree

La llamada se realiza desde el HTML renderizado asi code $(function {                        $("#tree2").dynatree({ initAjax: { url: "/ajax/AjaxTagsTree", data: { key: "root", // Optional arguments to append to the url mode: "all" }                           }                        });                    }); code El razor AjaxTagsTree que devuelve el json es asi

code var item = new { title = ""}; var list = new[] { item }.ToList; list.RemoveAt(0); foreach (var tag in tags) {   list.Add(new { title = tag.Id.ToString}); }

var json = list.ToJson;

// Change the mime type Context.Response.ContentType = "application/json"; Context.Response.Write(json); code