DWZ的树结构是按<ul>,<li>的嵌套格式构成,最顶级的<ul>以class=”tree”标识。
treeFolder, treeCheck, expand|collapse则为可选的。
treeFolder:在所有树节点前加上Icon图标。
treeCheck:在所有树节点前加上checkbox,
expand表示树的所有第一级节点默认是展开状态
collapse则表示所有第一级节点默认为折叠状态( 当expand与collapse都没有时默认则会展开第一个节点 )
此时需要在<a> 加上三个扩展属性tname="", tvalue="", checked="",其中tname与tvalue对应该checkbox的name与 value属性,
checked表示checkbox的默认状态是否checked.
扩展属性oncheck是自定义函数, 用来接收点击checkbox时返回值, 当点击非子树节点checkbox时返回数据格式为:{checked:true|false,items:{name:name, value:value}}
当点击了树节点checkbox时, 此子树节点下所有的checkbox都将选中, 同时返回此子树节点下所有的checkbox的值
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | private void recursionTreeMenu(String pId, StringBuffer buffer, List list, String url) { //这个url的作用是从jsp跳转到后台的修改链接里面 if (pId.equals( "0" )) { //DWZ的树结构是按<ul>,<li>的嵌套格式构成,最顶级的<ul>以class=”tree”标识。 //treeFolder:在所有树节点前加上Icon图标。 //collapse则表示所有第一级节点默认为折叠状态 buffer.append( "<ul class=\"tree treeFolder collapse \" >" ); } else { buffer.append( "<ul>" ); } List<Map> listMap = getSonMenuListByPid(pId, list); for (Map map : listMap) { String id = map.get( "id" ).toString(); // id String name = map.get( "name" ).toString(); // 名称 String isLeaf = map.get( "isLeaf" ).toString(); // 是否叶子科目 buffer.append( "<li><a onclick=\"onClickMenuNode(" + id + ")\" href=\"" + url + "?id=" + id + "\" target=\"ajax\" rel=\"jbsxBox\" value=" + id + ">" + name + "</a>" ); if (!isLeaf.equals( "1" )) { recursionTreeMenu(id, buffer, list, url); } buffer.append( "</li>" ); } buffer.append( "</ul>" ); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具