2012-01-03 3 views
2

J'essaye d'utiliser le KendoUI de Telerik et d'obtenir un treeview pour lier au JSON dynamique à partir d'un gestionnaire générique.KendoUI TreeView Dynamic JSON

Dans mon gestionnaire générique, j'utilise Newtonsoft.Json pour convertir une liste en résultats JSON, ce qui fonctionne parfaitement et fonctionne même avec un contrôle KendoUI différent (graphiques).

Voici ce que j'ai aussi loin que le javascript pour construire le TreeView:

var treeSource = new kendo.data.DataSource({ 
       transport: { 
        read: { 
         url: "Services/CategoryHandler.ashx", 
         dataType: "json", 
         contentType: "application/json; charset=utf-8", 
         type: "GET" 
        } 
       } 
      }); 

      $("#treeview").kendoTreeView({ 
       dataSource: treeSource 
      }); 

Voici un exemple raccourci du JSON retourné:

[ 
    { 
     "text":"Node 1", 
     "expanded":true, 
     "items":null 
    }, 
    { 
     "text":"Node 2", 
     "expanded":true, 
     "items":null 
    } 
] 

« articles » seront sous collections dans l'arbre.

Lorsque j'ajoute les éléments directement à la source de données telles que:

var treeview = $("#treeview").kendoTreeView({ 
          dataSource: [ 
           { text: "Item 1", expanded: true, items: [ 
            { text: "Item 1.1" }, 
            { text: "Item 1.2" }, 
            { text: "Item 1.3" } 
           ] }, 
           { text: "Item 2", items: [ 
            { text: "Item 2.1" }, 
            { text: "Item 2.2" }, 
            { text: "Item 2.3" } 
           ] }, 
           { text: "Item 3" } 
          ] 
         }) 

Il fonctionne très bien. Cela ne marche tout simplement pas quand j'appelle un service qui écrit le JSON, et ce que je veux dire par là ne fonctionne pas, aucune donnée n'apparaît, elle est vide.

Des pensées à ce que je pourrais être manquant ou des conseils sur la façon dont je peux vérifier mes données sont même retournées du service et même remplir correctement mon DataSource?

Merci

Répondre

3

IMPORTANT Comme 8 Novembre, 2012 KendoUI soutient déjà.

Kendo TreeView ne prend pas encore en charge la liaison à une source de données. La bonne nouvelle est que cela est dans les plans et sera bientôt mis en œuvre (prochaine version).

+1

merci Correcte. J'ai trouvé une solution de contournement où j'ai fait un $ .ajax GET et utilisé les résultats de la chaîne pour lier à l'arborescence. Je suis impatient de mises à jour KendoUI :) Merci encore. – CodeLikeBeaker

+0

La grille KendoUI se lie-t-elle à un HttpHandler? –

0

Ça marche pour moi avec un truc. J'utilise le ViewBag dynamique avec Json sérialisé au contrôleur et donc, les noeuds sont dessinés grand.

Mon problème est que les événements ne semblent pas fonctionner correctement. Par exemple je veux attraper le onDrop et lever une alerte pour montrer les valeurs réelles de ce noeud, et à la place il affiche le texte pour TOUS les noeuds. Cela me rend fou au fait.

Ceci est mon code, l'espoir peut aider quelqu'un.

function onDrop(e) { 
     alert(treeView.text(e.sourceNode)); 
    } 

Un modèle doit être attribué pour travailler:

template: "<span rel='#= item.Id #'> #=item.text #</span>",