json - 带有 JSON 的 JsTree 卡在加载中

标签 json jstree

我正在使用 JSON 来显示 JsTree。 JSON 通过递归函数构建为字符串。现在我用更小/更简单的树进行了一些测试并让它工作。我使用 JSONLint 检查有效的 JSON,并最终得到了正确的语法。现在,当我尝试显示预期的大树时,它只是停留在加载 .gif 上(过去是因为 JSON 不正确),但在 JSONLint 上检查后它是正确的。

这有什么可能的原因吗?我怀疑这棵树可能太大或什么的。

递归函数:

public void getViewTree(ref string tree, Int32? id = null)
        {
            var topNodes = (from items in db.AssessmentViewItems
                           select items).Take(1);

            #region getChildren via LINQ
            if (id == null)
            {
                topNodes = from items in db.AssessmentViewItems
                           where items.ParentAssessmentViewItemID == null
                           && items.AssessmentViewID == 17
                           select items;
            }
            else
            {

                topNodes = from items in db.AssessmentViewItems
                           where items.ParentAssessmentViewItemID == id
                           && items.AssessmentViewID == 17
                           select items;
            } 
            #endregion

            int counter = 1;
            int max = (int)topNodes.Count();
            foreach (var node in topNodes)
            {

                if (node.ParentAssessmentViewItemID == null)
                {
                    {\"id\":\"532topNode\",\"selected\":true},\"children\":[null,
                    tree += "{\"data\":\"" + node.Title.Trim().Replace("\"","").Replace("("," ").Replace(":"," ").Replace("-"," ").Replace("&","and").Replace("/"," ").Replace("\\"," ").Replace(","," ").Replace("•", " ") + "\",\"attr\":{\"id\":\"" + node.AssessmentViewItemID + "\", \"selected\":true}, \"children\":[";   

                    getViewTree(ref tree, node.AssessmentViewItemID);
                    tree += "}]";
                    if (counter < max)
                    {
                        tree += "},";
                    }
                }
                else if (node.Type.Equals("Legal Topic"))
                {
                    tree += "{\"data\":\"" + node.Title.Trim().Replace("\"", "").Replace("(", " ").Replace(":", " ").Replace("-", " ").Replace("&", "and").Replace("/", " ").Replace("\\", " ").Replace(",", " ").Replace("•", " ") + "\",\"attr\":{\"id\":\"" + node.AssessmentViewItemID + "\", \"selected\":true}";

                    if (counter < max)
                    {
                        tree += "},";
                    }

                }
                else
                {
                    var topNodes1 = from items in db.AssessmentViewItems
                               where items.ParentAssessmentViewItemID == node.AssessmentViewItemID
                               && items.AssessmentViewID == 17
                               select items;

                    if (topNodes1.Count() > 0)
                    {

                        tree += "{\"data\":\"" + node.Title.Trim().Replace("\"", "").Replace("(", " ").Replace(":", " ").Replace("-", " ").Replace("&", "and").Replace("/", " ").Replace("\\", " ").Replace(",", " ").Replace("•", " ") + "\",\"attr\":{\"id\":\"" + node.AssessmentViewItemID + "\", \"selected\":true}, \"children\":[";
                    }
                    else
                    {
                        tree += "{\"data\":\"" + node.Title.Trim().Replace("\"", "").Replace("(", " ").Replace(":", " ").Replace("-", " ").Replace("&", "and").Replace("/", " ").Replace("\\", " ").Replace(",", " ").Replace("•", " ") + "\",\"attr\":{\"id\":\"" + node.AssessmentViewItemID + "\", \"selected\":true}";
                    }

                    getViewTree(ref tree, node.AssessmentViewItemID);

                    if (topNodes1.Count() > 0)
                    {
                        tree += "}]";
                    }

                    if (counter < max)
                    {
                        tree += "}";
                        tree += ",";
                    }

                }

                counter++;
            }
        }

JS:

$(function () {
    $("#demoTree").jstree({
        "json_data": {
            "data": treeModel
        },
        "plugins": ["themes", "json_data", "ui"],

    });
});

调用递归函数:

string tree = "[";

getViewTree(ref tree);

tree += "}]";

return View("About", "_Layout", tree);

使用 Chrome Dev Tools 后,我从中得到的错误:

未捕获的语法错误:意外的 token 非法(程序):54 未捕获既没有提供数据也没有提供 ajax 设置。

我确实在 JSONLint 上检查了它的语法。没有这两个错误就可以很好地生成小树

最佳答案

使用 DevExpress 树解决了问题。完全相同的 JSON 字符串。

关于json - 带有 JSON 的 JsTree 卡在加载中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15130885/

相关文章:

json - download.file 错误不支持的 URL 方案

php - 在执行 INSERT 之前,您的 MySQL 是在 JSON 编码之前还是在 JSON 编码之后真正转义数据?

ios - 在 Swift 应用程序中更新本地 JSON 数据文件的最佳实践?

javascript - 解析带反斜杠的 json 对象并将其添加回数据 json

javascript - 如何限制jstree中所选子节点的数量?

javascript - jstree 显示原始 json,而不是树

javascript - underscore.js 的替代品

javascript - 无法从 IE 中的 jsTree 中删除元素

javascript - 为 jstree 输入节点添加自动完成

Javascript 树无法正常工作