Можно ли настроить популярные представления дерева javascript (jstree, dynatree ...) для чтения данных из модели смежности? - PullRequest
3 голосов
/ 24 января 2012

можно ли настроить популярные представления дерева javascript (jstree, dynatree ...) для чтения данных из модели смежности? скажем, у меня есть таблица с classId, ClassName, ClassType, ParentClassId, как я могу получить данные, скажем, для dynatree? учитывая, что json ожидает от dyna tree что-то вроде ниже

        {title: "Class1"},
        {title: "Class2", isFolder: true,
            children: [
                {title: "Class4"},
                {title: "Class5"}
            ]
        },
        {title: "Class3"}

Я использую aspx веб-сервис asp.net с linq to sql на сервере

1 Ответ

2 голосов
/ 27 января 2012

Единственное, что вам нужно сделать, чтобы узлы загружались по требованию, это добавить «состояние»: «закрыто» к узлам, чьи дочерние узлы будут загружаться по требованию.

У вас могут быть все необходимые атрибуты classId, ClassName,ClassType,ParentClassId, прикрепленные к узлу, чтобы вы могли передать его через ajax. ваш код

"json_data": {
      //elements to be displayed on the first load
      //everything with state = closed will be populated via ajax. 
      //         Note the ajax arguments

    "data": [{"data":'Class 1',
              "attr":{"id":'kit1',
                      "ClassName":"ClassName",
                      "classId":"classId"},
              "state" : "closed"},
             {"data":'Class 2',
              "attr":{"id":'kit2',
                      "ClassName":"ClassName",
                      "classId":"classId"},
              "state" : "closed"}
            ],
    "ajax" : {
        url : "http://localhost/introspection/introspection/product",
        data : function(n) {
                 return {
                   "classId":$.trim(n.attr('classId')),
                   "ClassName":$.trim(n.attr('ClassName')),
                 }
               }
    }
 }
...