无法传递参数以加载JSTree(重新渲染)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法传递参数以加载JSTree(重新渲染)相关的知识,希望对你有一定的参考价值。

我试了很多。在页面加载工作正常。

我想在DataTable行上点击重新加载JStree。从DataTable行获取Id并将其传递给JStree。每当我把JSTree放在一个函数中。它不在页面上呈现。我尝试了不同的方法。但没有成功。仅适用于页面加载。

数据表

$('#roles').on('click', 'tr', function () {
    var id = table.row(this).id();
    alert(id);
    id = table.row(this).id();

    $.ajax({
        async: true,
        type: "POST",
        url: '/Home/GetData',
        dataType: "json",
        data: { roleId: id },
        success: function (json) {
           createJSTree(json);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        }
    });
});

JSTree

function createJSTree(jsondata) {
    $('#app_tree').jstree({
        'core': {
            'data': jsondata
        }
    });
}

在页面加载

$('#app_tree').jstree({
    'plugins': ["wholerow", "checkbox", "types"],
    'core': {
        "themes": {
            "responsive": false
        }
    }
});

这在页面加载时工作正常

$('#app_tree').jstree({
    'plugins': ["wholerow", "checkbox", "types"],
    'core': {
        'check_callback': true,
        "themes": {
            "responsive": false
        },
        'data': {
            'type': "POST",
            "url": function (node) {
                return "/Home/GetData?roleId=acb31181-b364-4a57-8806-70f5fcb07d1f";
            },
            'contentType': "application/json"
        }
    }
});
答案

您可能需要重新绘制JSTree以获取新数据。

请检查类似的堆栈here

以上是关于无法传递参数以加载JSTree(重新渲染)的主要内容,如果未能解决你的问题,请参考以下文章

传递参数以在Shiny中渲染函数

jstree 3.0.2 动态树总是从缓存中加载数据,而不是重新调用服务器

jquery的jsTree好用吗?如果用xml格式加载数据的话?具体用法怎么用?

在android中动态创建选项卡并使用传入的参数加载片段

如何绕过将数据模型传递给片段参数以避免事务太大异常?

重新加载片段