24小时热门版块排行榜    

Znn3bq.jpeg
北京石油化工学院2026年研究生招生接收调剂公告
查看: 606  |  回复: 0

tree1984

新虫 (初入文坛)

[交流] 多叉树结合JavaScript树形组件实现无限级树形结构

一、问题研究的背景和意义

在web应用程序开发领域,基于ajax技术的树形组件已经被广泛使用,它用来在html页面上展现具有层次结构的数据项。目前市场上常见的框架及组件库中均包含自己的树形组件,例如jquery、ext js等,还有一些独立的树形组件,例如dhtmlxtree等,这些树形组件完美的解决了层次数据的展示问题。展示离不开数据,树形组件主要利用ajax技术从服务器端获取数据源,数据源的格式主要包括json、xml等,而这些层次数据一般都存储在数据库中。“无限级树形结构”,顾名思义,没有级别的限制,它的数据通常来自数据库中的无限级层次数据,这种数据的存储表通常包括id和parentid这两个字段,以此来表示数据之间的层次关系。现在问题来了,既然树形组件的数据源采用json或xml等格式的字符串来组织层次数据,而层次数据又存储在数据库的表中,那么如何建立起树形组件与层次数据之间的关系,换句话说,如何将数据库中的层次数据转换成对应的层次结构的json或xml格式的字符串,返回给客户端的树形组件?这就是我们要解决的关键技术问题。本文将以目前市场上比较知名的ext js框架为例,讲述实现无限级树形结构的方法,该方法同样适用于其它类似的树形组件。

ext js框架是富客户端开发中出类拔萃的框架之一。在ext的ui组件中,树形组件无疑是最为常用的组件之一,它用来实现树形结构的视图。treenode用来实现静态的树形结构,asynctreenode用来实现动态的异步加载树形结构,后者最为常用,它通过接收服务器端返回来的json格式的数据,动态生成树形结构节点。动态生成树有两种思路:一种是一次性生成全部树节点,另一种是逐级加载树节点(利用ajax,每次点击节点时查询下一级节点)。对于大数据量的树节点来说,逐级加载是比较合适的选择,但是对于小数据量的树节点来说,一次性生成全部节点应该是最为合理的方案。在实际应用开发中,一般不会遇到特别大数据量的场景,所以一次性生成全部树节点是我们重点研究的技术点,也就是本文要解决的关键技术问题。本文以基于ext js的应用系统为例,讲述如何将数据库中的无限级层次数据一次性在界面中生成全部树节点(例如在界面中以树形方式一次性展示出银行所有分支机构的信息),同时对每一个层次的节点按照某一属性和规则排序,展示出有序的树形结构。

解决一次性构造无限级树形结构的问题,可以拓展出更多的应用场景,例如树形结构表格treegrid,一次性生成树形表格,对树形表格进行完整分页,对表格列进行全排序;或者可以利用本文的思路扩展出其他的更复杂的应用场景。

-------------------------------------------------------------------------------------------------
全篇文章请从百度网盘中下载。
百度网盘下载链接:https://pan.baidu.com/s/13-1Ra-eonZtEmFGXn7KLLg?pwd=2022
提取码:2022
-------------------------------------------------------------------------------------------------
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tree1984 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 277求调剂 +3 考研调剂lxh 2026-04-06 5/250 2026-04-08 09:46 by eyeliyang
[考研] 22408 266求调剂 +8 masss11222 2026-04-07 11/550 2026-04-08 09:42 by 南开小綦
[考研] 一志愿085404,总分291,四级已过,求调剂 +7 阿俊阿俊阿俊 2026-04-04 9/450 2026-04-07 22:25 by dick_runner
[考研] 085600材料与化工专硕329 求调剂 +18 额cc 2026-04-06 19/950 2026-04-07 19:38 by qlm5820
[考研] 290求调剂085701 +15 1314捧花 2026-04-02 16/800 2026-04-07 18:15 by 蓝云思雨
[考研] 0702物理学学硕299求调剂 +3 祁柒连 2026-04-06 3/150 2026-04-07 12:48 by 小木虫gyh
[考研] 考研调剂 +7 15615482637 2026-04-04 7/350 2026-04-06 22:56 by chenzhimin
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +11 大火山小火山 2026-04-05 11/550 2026-04-06 22:55 by yunlongyang
[考研] 287分求调剂 有专利国奖一志愿哈工大085406 +6 白易辰 2026-04-06 7/350 2026-04-06 22:46 by 875465
[考研] 332求调剂 +17 小小孟... 2026-04-05 18/900 2026-04-06 09:51 by 蓝云思雨
[考研] 301求调剂 +6 细胞相关蛋白 2026-04-02 10/500 2026-04-06 08:34 by jp9609
[考研] 295求调剂 +8 FZAC123 2026-04-03 8/400 2026-04-05 17:46 by 蓝云思雨
[考研] 一志愿北京化工大学,初试成绩350求调剂 +9 沿岸?贝壳 2026-04-04 14/700 2026-04-05 01:09 by 沿岸?贝壳
[考研] 321求调剂 +6 认真求上学 2026-04-03 6/300 2026-04-04 19:51 by dongzh2009
[考研] 复试调剂 +6 范根培 2026-04-04 6/300 2026-04-04 14:27 by 土木硕士招生
[考研] 400分求调剂 +3 尴尬且挠头 2026-04-04 3/150 2026-04-04 08:41 by jp9609
[考研] 一志愿双非085502,267分,过四级求调剂 +3 再忙也要吃饭啊 2026-04-03 3/150 2026-04-04 05:03 by gswylq
[考研] 求调剂 +4 15064154688 2026-04-03 5/250 2026-04-03 15:07 by zrongyan
[考研] 289-求调剂 +4 这里是_ 2026-04-03 4/200 2026-04-03 14:23 by 1753564080
[考研] 一志愿大工学硕,求调剂 +4 yub0811 2026-04-02 4/200 2026-04-02 21:36 by 百灵童888
信息提示
请填处理意见