我正在使用jstree显示一些节点(包括。DnD、类型和上下文菜单插件)。我没有任何问题地获得了整个树,正确地显示了它,并且我可以选择任何节点,但是,在一个节点上使用更新操作(通过对服务器的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调用的结果返回它们的列表(required节点和所有子节点)(不管是对根节点还是对另一个非根节点的调用)
你能告诉我我哪里做错了吗?
提前谢谢你。
发布于 2019-07-31 19:27:32
我发现了问题:当你使用根id ("#")以外的id进行调用时,刷新处理节点id的子节点。我的方法是返回根节点和子节点,这是错误的。没有直接从DB更新单个节点的函数,但是this问题展示了如何从js更新它们,因此,我将尝试通过ajax调用获取新状态来更新它们,并使用该响应来更新所有数据并手动重绘。
希望这能对其他人有所帮助。
谢谢大家!
https://stackoverflow.com/questions/57251385
复制相似问题