Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax调用/延迟加载的JSTree搜索_Javascript_Jquery_Asp.net Mvc_Jstree - Fatal编程技术网

Javascript 使用Ajax调用/延迟加载的JSTree搜索

Javascript 使用Ajax调用/延迟加载的JSTree搜索,javascript,jquery,asp.net-mvc,jstree,Javascript,Jquery,Asp.net Mvc,Jstree,我在应用程序中使用JSTree 我无法使用ajax调用实现搜索功能 我把我试过的东西放在这里 $(document).ready(function () { $("#jstree_demo_div").jstree({ "core": { "data": { "url": "Tree/Index", "data": function (node) {

我在应用程序中使用JSTree

我无法使用ajax调用实现搜索功能

我把我试过的东西放在这里

$(document).ready(function () {
    $("#jstree_demo_div").jstree({
        "core": {
            "data": {
                "url": "Tree/Index",
                "data": function (node) {
                    return { "id": node.id };
                }
            }
        },
        "search": {
            "url": "Tree/Index",
            "data": function (node) {
                return { "id": node };
            }
        },
        "plugins": ["search"],
    });

    $('#searchTree').on('click', function (event) {
        $("#jstree_demo_div").jstree('search', '1');
    });
});
每当我按下按钮,它就会进入事件,之后就不会调用服务器

我想要的是在搜索时调用ajax,并根据搜索完全重新创建treeview。

我不明白我该怎么做

我已经检查了以下链接

在上面的问题中,我无法理解什么是“json_数据”,以及为什么和如何使用它

中没有一个示例使用名为“json_data”的变量

请通过示例帮助我了解JSTree Ajax调用/延迟加载如何与搜索功能配合使用。


这对我真的很有帮助。提前感谢。

搜索设置更改为:

"search": {
    "ajax": {
         "url": url,
            }
          },

您的搜索配置需要更正,要使用关键字进行搜索,您需要将关键字传递到url,并且应该使用GET方法检索数据。 试试这个


search.ajax.data
config选项不能是函数-它应该是一个对象(就像普通的jQuery ajax配置一样),jstree将只向该对象添加一个
str
属性。至于GET或POST,您可以随意使用,只需指定为
search.ajax
就是一个有效的jQuery ajax配置。

但它不会传递值。除此之外,我还需要编写“ajax”,因为在加载数据时我不需要编写。只是要求更多的理解。谢谢。它将值传递为
?str=1
,只需在浏览器中检查它并查看发送到服务器的url。我不知道,只是通过调试,我意识到它会检查ajax,如果没有找到,它会在本地搜索。是的。正如您所说,它检查“ajax”。我还通过调试找到了。但我无法理解和解决它。谢谢我会通过调试JSTree.js来了解更多。谢谢。是的,我试过了,在搜索中重新创建JSTree怎么样?我的意思是,我有一组节点,我想在执行搜索时显示并展开这些节点。
        // Configuring the search plugin
        "search" : {
            // As this has been a common question - async search
            // Same as above - the `ajax` config option is actually jQuery's AJAX object
            "ajax" : {
                "url" : "Tree/Search",
                // You get the search string as a parameter
                "data" : function (str) {
                    return { 
                        "operation" : "search", 
                        "q" : str 
                    }; 
                }
            }
        },