【问题标题】:JsTree Custom Icons with Json_data plugin带有 Json_data 插件的 JsTree 自定义图标
【发布时间】:2011-08-17 15:01:21
【问题描述】:

我在 MVC 网站上使用 JsTree。我正在使用 json_data 插件来填充树。我的 Controller 操作使用我创建的代表节点的类返回一个 JsonResult。我一直在阅读documentation,了解如何为特定节点指定自定义图标,但我似乎无法正确理解。似乎表明 data 应该是一个包含标题和图标字符串的对象,但是当我尝试它时,这会阻止树加载。我目前使用的类结构如下。

public class NodeModel
{
    public string data;
    public NodeAttribute attr;
    public string state = "closed";
    public string icon = "default/file.png";
}

public class ParentNodeModel : NodeModel
{
    public List<NodeModel> children;
}

public class NodeAttribute
{
    public string id;
    public string type;
}

有谁知道 json 数据应该是什么样的格式,以便为每个节点提供一个单独的图标?如果可能,我想避免使用类型插件。

已解决

更改我的类结构以将数据字符串转换为新对象实际上是正确的格式。但是随着新结构的出现,我的代码的另一部分崩溃了(现在已修复)。所以类现在看起来像这样

public class NodeModel
{
    public NodeData data;
    public NodeAttribute attr;
    public string state = "closed";
}

public class NodeData
{
    public string title;
    public string icon = "path/file.png";
}

【问题讨论】:

    标签: javascript jquery model-view-controller jstree


    【解决方案1】:

    似乎您的对象定义正确。来自 jsTree 文档:

    如果icon 包含斜线/它被视为文件,用于 背景。否则 - 它作为一个类添加到“ins”节点

    我假设“default/file.png”已经作为CSS类添加到“ins”节点,所以可能斜线'/'应该是第一个符号,尝试将图标值设置为“/default/文件.png"。

    您还可以在project 中查看我们如何使用 jsTree:

    【讨论】:

    • 感谢您的建议。我用firebug检查了html,css类似乎没有改变(我仍然得到 )。我一直在玩 url 并尝试在开头添加一个“/”。文档说它应该包含一个'/',它将被用作一个url。我有一种感觉图标字符串不应该在那里我有它。我发现this example 再次表明该图标应该在数据对象中,但是当我尝试它时,树会永远加载。
    • 你看到这个帖子了吗:groups.google.com/group/jstree/browse_thread/thread/…。似乎是同样的问题。
    • 我阅读了该主题并开始使用演示页面。我在演示树中添加了一些原始 json 数据并设法获得了一个自定义图标。正确的格式是将数据更改为同时包含标题和图标的对象。所以在我自己的项目中一定会发生一些有趣的事情,但这是一个很好的开始,我想我现在有一些工作要做:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多