在非根节点中使用refresh_node时的Jstree问题
Jstree problem when using refresh_node in a non-root node
我正在使用 jstree 来显示一些节点(包括 DnD、Type 和 Contextmenu 插件)。
我得到的整棵树都没有问题,正确显示它并且我可以 select 任何节点,但是,在一个节点上使用更新操作(通过对服务器的 Ajax 调用)后,我想要刷新此(且仅此)节点。 refresh_node(myNode) 操作是我想要的,Ajax 调用工作正常,只给我需要的子树部分。
但是,当 jstree 尝试重绘时,我收到关于变量不存在的错误。我调试了它,我注意到一些节点的父数组已经消失了。
我正在使用备用 JSON 格式加载我的树,配置如下:
core{
multiple: false,
data {
url: "my_url_string_to_server",
data: function(node) { return { id: nodeId, /*other params*/ } }
}
}
/*other plugins config*/
和我给 refresh_node 的电话:
//nodeId is a string with the name of the node I want to refresh.
var node = $.jstree.reference('.tree-data').get_node(nodeId);
$.jstree.reference('.tree-data').refresh_node(node);
//I tried refresh_node(nodeId) too, with the same error result.
我所有的树节点是:
{
"id", "UniqueId",
"parent": "Parent" },
"text", "Name" },
"state": { },
"type": "type"
"li_attr":{
{ "title", "title" },
{ "class", "class" }
}
"a_attr":{
{ "class", "class" }
},
"data":{
{ "dbid", "Id" },
{ "dbparent", "ParentId" },
{ "status", "statusId" }
}
}
如 jstree 文档所述(see 'alternative JSON format')
作为 ajax 调用的结果返回它们的列表(需要的节点和所有子节点)(不关心是对根节点还是另一个非根节点的调用)
拜托,你能告诉我我做错了什么吗?
提前谢谢你。
我发现了问题:当您使用根 ID(“#”)以外的 ID 调用时,刷新处理节点 ID 的子节点。我的方法是返回根节点和子节点,这是错误的。没有直接从 DB 更新单个节点的函数,但是 this 问题显示了如何从 js 更新它们,因此,我将尝试通过 ajax 调用获取新状态来更新它们,并且使用该响应更新所有数据并手动重绘。
希望这对其他人有用。
谢谢大家!
我正在使用 jstree 来显示一些节点(包括 DnD、Type 和 Contextmenu 插件)。 我得到的整棵树都没有问题,正确显示它并且我可以 select 任何节点,但是,在一个节点上使用更新操作(通过对服务器的 Ajax 调用)后,我想要刷新此(且仅此)节点。 refresh_node(myNode) 操作是我想要的,Ajax 调用工作正常,只给我需要的子树部分。
但是,当 jstree 尝试重绘时,我收到关于变量不存在的错误。我调试了它,我注意到一些节点的父数组已经消失了。
我正在使用备用 JSON 格式加载我的树,配置如下:
core{
multiple: false,
data {
url: "my_url_string_to_server",
data: function(node) { return { id: nodeId, /*other params*/ } }
}
}
/*other plugins config*/
和我给 refresh_node 的电话:
//nodeId is a string with the name of the node I want to refresh.
var node = $.jstree.reference('.tree-data').get_node(nodeId);
$.jstree.reference('.tree-data').refresh_node(node);
//I tried refresh_node(nodeId) too, with the same error result.
我所有的树节点是: { "id", "UniqueId", "parent": "Parent" }, "text", "Name" }, "state": { }, "type": "type" "li_attr":{ { "title", "title" }, { "class", "class" } } "a_attr":{ { "class", "class" } }, "data":{ { "dbid", "Id" }, { "dbparent", "ParentId" }, { "status", "statusId" } } }
如 jstree 文档所述(see 'alternative JSON format')
作为 ajax 调用的结果返回它们的列表(需要的节点和所有子节点)(不关心是对根节点还是另一个非根节点的调用)
拜托,你能告诉我我做错了什么吗?
提前谢谢你。
我发现了问题:当您使用根 ID(“#”)以外的 ID 调用时,刷新处理节点 ID 的子节点。我的方法是返回根节点和子节点,这是错误的。没有直接从 DB 更新单个节点的函数,但是 this 问题显示了如何从 js 更新它们,因此,我将尝试通过 ajax 调用获取新状态来更新它们,并且使用该响应更新所有数据并手动重绘。
希望这对其他人有用。
谢谢大家!