jsTree,JSON和MVC3对象。如何构建数据

时间:2012-03-04 21:15:33

标签: json asp.net-mvc-3 jstree

我一直在玩JsTree和MVC3。我可以成功调用MVC3方法并获取JSON来加载基本的JsTree,这样我就可以完成非常基础的操作。我不明白的是更复杂的数据结构主要用于在节点上等待我需要的额外数据,并让树对某些数据采取行动。

我的数据是 NodeText(字符串) - 要显示的文本

ItemStatus(enum) - 用于在树上设置颜色等

ItemType(枚举) - 控制可以拖放的内容以及

RelatedIDs(列表ID是下面描述的结构) - 在项目被删除时使用

PrimaryItemID(ID并且是结构) - 用于右键菜单和数据库项目识别,并从已删除的项目中应用RelatedID的信息。

SecondaryItemID(ID并且是结构) - 用于右键菜单和数据库项目识别,并从已删除的项目中应用RelatedID的信息。

ID struct is
ID (long) 
IDType (enum)

从我的阅读中我了解JSON数据布局可能已经改变了以及有属性数据和元数据但是我不清楚应该去哪里以及我应该创建什么MVC3模型对象以将此数据序列化为JSON树可以理解。我真的希望第一次正确地获得基础数据结构,所以我不必重写一堆代码。

如果我已经留下任何所需信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

您使用的后端语言无关紧要。在您的回复中,JSON必须以某种方式查看。基本的jsTree可接受的JSON格式是:

[
   {
      "data" : {
         "icon" : "/path/to/icon.png",
         "title" : "name of the node"
      },
      "attr" : {
         "rel" : "type defined by types",
         "title" : "node title",
         "id" : "Node id"
      },
      "state" : "closed"
   }
]

显然,这只是你可以玩的一个例子。当然,您可以将null放入图标中,或者完全删除它。 rel必须由types插件定义,但也是可选的,标题也是如此。

答案 1 :(得分:1)

这是我一直用于JSTree的数据模型。你必须把它放在json形式。

node.data.attr.href          <a> tag within <li> href
              .other-a-attr  any other attribute you want on the <a>
         .title              visible title of node  
         .icon               optional image_file for icon
    .state                   controls icon, "open", "closed" or "" = default
    .arrt.id                 node id on the <li>
         .nType              type_attr for UI and types plug ins - MUST SET using type_attr in Types plugin default is ref
         .title              node title (not visible)
         .other-li-attr      any other attritubes you want on the <li> 

我必须同意JSTree有一个非常陡峭的学习曲线,从文档中获取这些对我们来说并不容易。

我仍然不确定node.arrt.title的用途。它不是你在树中看到的标题。 node.data.title是树中显示的那个。

可能还有其他我尚未想到的。如果你想出来,请告诉我。