【问题标题】:How to pass data to bootstrap-treeview?如何将数据传递给 bootstrap-treeview?
【发布时间】:2018-01-10 06:13:53
【问题描述】:

我正在使用bootstrap-treeview 来构建我的树形视图。

我需要将一组 JavaScript 对象作为数据传递给 bootstrap-treeview。

我已经在服务器端构建树结构并将其序列化为 Json 字符串。然后我通过 AJAX 调用将 Json 字符串传递给客户端:

// Tree object
public class MyTree
{
    public string text { get; set; }
    public List<MyTree> nodes { get; set; }
}

// I build the tree, and serialize it like this to be returned to JavaScript like this:
return JsonConvert.SerializeObject(treeObject);

这是我用于构建树的 JavaScript 代码。我想将树作为数据传递给 bootstrap-treeview:

function getTree() {
    $.getJSON("/api/GetTree", function (tree) {
        return tree;

        // I have tried this as well but did not work:
        // var res = JSON.parse(tree);
        // return res;
    });
}

$('#MyTree').treeview({
    data: getTree(),
    enableLinks: true,
    showBorder: false
});

这是我在 AJAX 调用中从服务器收到的值的屏幕截图:

Chrome debugger screenshot

如上所示,我也尝试过传递:JSON.parse(tree);,但它也没有显示数据。

【问题讨论】:

  • 很明显,在您创建 MyTree 对象的服务器端代码中存在错误。显示创建 treeObject 的代码。
  • 感谢 Sandip,服务器端正在返回预期的数据,如果您查看问题末尾的屏幕截图,它显示了从树返回的树结构的内容。

标签: javascript jquery json bootstrap-treeview


【解决方案1】:

编辑并尝试:

function getTree() {
    $.getJSON("/api/GetTree", function (tree) {
      $('#MyTree').treeview({
        data: tree,
        enableLinks: true,
        showBorder: false
      });
        // I have tried this as well but did not work:
        // var res = JSON.parse(tree);
        // return res;
    });
}

getTree();

【讨论】:

  • 非常感谢,它成功了。您能否解释一下这与我传递对象的方式有何不同?
  • 在你的情况下,getTree 是异步函数,所以它会在你的 api 请求给出响应时调用。因此,当您调用 $('#MyTree').treeview({}) 时,不会从您的 api 中获取数据,data: getTree(),因为 getTree() 是一个异步函数。
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
相关资源
最近更新 更多