【发布时间】:2019-05-27 13:26:06
【问题描述】:
我有一个嵌套对象列表(父子对象),我使用 jstree 插件来分层显示它们。
数据库列表:
ID Name ParentId
1 A NULL
2 B NULL
5 a1 1
6 b1 2
9 a11 5
10 a12 5
11 b12 6
将列表转换为 json 与他们的孩子:
[{"children":[{"children":[{"children":[],"id":9,"text":"a11","ParentId":5},{"children":[],"id":10,"text":"a12","ParentId":5}],"id":5,"text":"a1","ParentId":1}],"id":1,"text":"A","ParentId":null},{"children":[{"children":[{"children":[],"id":11,"text":"b12","ParentId":6}],"id":6,"text":"b1","ParentId":2}],"id":2,"text":"B","ParentId":null},{"children":[{"children":[],"id":9,"text":"a11","ParentId":5},{"children":[],"id":10,"text":"a12","ParentId":5}],"id":5,"text":"a1","ParentId":1},{"children":[{"children":[],"id":11,"text":"b12","ParentId":6}],"id":6,"text":"b1","ParentId":2},{"children":[],"id":9,"text":"a11","ParentId":5},{"children":[],"id":10,"text":"a12","ParentId":5},{"children":[],"id":11,"text":"b12","ParentId":6}]
ajax:
success: function (x) {
$('#jstree').jstree({
'core': {
'data': jQuery.parseJSON(x)
}
}); }
问题是当 json 对象第一次加载到页面时,jstree 会显示所有节点,甚至是它们的子节点;在同一级别。只有当我花费一个父节点时,孩子才会正确地来到他们的父母之下并从第一级消失。 为什么会这样?谢谢。
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀! -
我建议您编辑您的问题:C# 和您的数据库代码都与问题无关,这就是为什么 jsTree 对您的 JS 结构不满意。
-
@vorou 谢谢,但我认为 c# 代码是相关的,因为它在那里创建了分层列表结构。您能否更具体地指出问题所在?
标签: jquery json list parent-child jstree