javascript - jsTree - 使用 AJAX/C#Web 方法动态填充树

标签 javascript ajax c#-4.0 jstree webmethod

我有一个 div,我想用 jsTree 填充它:

我在要显示树的位置获得了“正在加载”图标,但是,似乎有一个 javascript 错误,即使没有抛出错误也是如此。

我按如下方式从 AJAX 请求加载我的文件夹结构。 Documents.aspx/GetFolders Web 方法返回一个包含 FolderId、ParentId 和文件夹名称的列表。我已经调试了 Web 方法,它正在将正确的结果传递给 jsTree“数据”函数。

$.ajax({
   type: "POST",
   url: 'Documents.aspx/GetFolders',
   contentType: "application/json; charset=utf-8",
   success: function (data) {
      data = data.d;

      $("#tree").jstree({
         "core": {
            "themes": {
               "responsive": true
            },
            "data": function () {
               var items = [];
               items.push({ 'id': "jstree_0", 'parent': "#", 'text': "Documents" });
               $(data).each(function () {
                  items.push({ 'id': "jstree_" + this.DocumentFolderId, 'parent': "jstree_" + this.ParentId, 'text': "" + this.Name });
               });
               return items;
            }
         },
         "types": {
            "default": {
               "icon": "fa fa-folder icon-lg"
            },
         },
         "plugins": ["contextmenu", "dnd", "state", "types"]
      });
   },
   error: function () {
      toastr.error('Error', 'Failed to load folders<span class=\"errorText\"><br/>There was a fatal error. Please contact support</span>');
   }
});

调试代码后,数据似乎被正确检索并按预期返回对象数组。

以上是否有任何问题(或者我应该查看其他地方)?或者是否有更好的方法来实现其预期目的?

最佳答案

我想我终于找到了答案! :)

"core": {
   "themes": {
      "responsive": true
   },
   "data": {
      type: "POST",
      url: "Documents.aspx/GetFolders",
      contentType: "application/json; charset=utf-8",
      success: function (data) {
         data.d;
         $(data).each(function () {
            return { "id": this.id };
         });
      }
   },
}

服务器端,需要返回数组格式的数据,即:

[{id = "node0", parent = "#", text = "Documents"},
{id = "node1", parent = "node0", text = "Public"},
{id = "node2", parent = "node0", text = "Restricted"}]

关于javascript - jsTree - 使用 AJAX/C#Web 方法动态填充树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467491/

相关文章:

javascript - jQuery colorbox 插件调整大小回调

javascript - 使用 vanilla javascript 在 Bootstrap 模式中显示输入信息并选择字段

javascript - 将数据从 Ajax Post 传递到 Node js

javascript - 在异步 Mocha 测试中将 Assets 放在哪里

Python Flask ajax将解码后的base64图像临时保存到服务器

jQuery ajax XML Http 请求不起作用

c# - 使用DataContractSerializer序列化,反序列化不回来

c# - 将 VB Linq 转换为 C#

asp.net-mvc-3 - 将图像转换为字节[]

javascript - Angular 10 没有 ModalDialogService 的提供者