Dojo dijit/Tree的使用以及样式设置
如果什么都不设置,默认使用dojo自带的Tree,样式模板使用claro的,效果是这样的。
1、无论是不是叶子节点,前面总要带个+号,必须要点击下才消失。
2、点击树或者某个节点是,回出现蓝色边框。
3、默认的文件夹图标也不好看。
根据项目需要,经过摸索,最后修改成了这样子,已经面目全非。
至少看着不那么像官方的树样式了。
主要修改了一下内容。
一、对Css代码的修改。
/* Tree的样式----------------------------------------------------------------------*/ .claro .dijitTreeRow, .claro .dijitTreeNode .dojoDndItemBefore, .claro .dijitTreeNode .dojoDndItemAfter { color: #ffffff; padding: 4px; font-size: 14px; } .claro .dijitTreeRowHover { background-color: #626262; background-image: none; border-width: 0px; padding: 4px; } .claro .dijitTreeRowSelected { background-color: #626262; background-image: none; border-width: 0px; padding: 4px; } .dijitTreeLabel { outline: none; } .dijitTree { outline: none; } .claro .dijitTreeExpando { background-image: url(Res/Images/ArrowDown16.png); background-position: 0 0; } .claro .dijitTreeRowHover .dijitTreeExpandoOpened { background-image: url(Res/Images/ArrowDown16.png); width: 16px; height: 16px; background-position: 0 0; } .claro .dijitTreeRowHover .dijitTreeExpandoClosed { background-position: 0 0; } .claro .dijitTreeExpandoClosed { background-image: url(Res/Images/ArrowRight16.png); width: 16px; height: 16px; background-position: 0 0; } .claro .dijitTreeExpandoLeaf, .dj_ie6 .claro .dijitTreeExpandoLeaf { width: 0px; height: 0px; } /* Tree的样式----------------------------------------------------------------------*/
这些样式通过Google浏览器进行调试时都可以看到,自己摸索着修改成自己满意的样式即可。
二、Js代码模块的修改。
var myStore = new Memory({ data: pBDataSet, getChildren: function (object) { return this.query({ parent: object.id }); } }); // Create the model var myModel = new ObjectStoreModel({ store: myStore, query: { id: "Root" }, mayHaveChildren: function (pItem) { if (pItem.type == "DataGroup") { return true; } else { return false; } } }); // Create the Tree. var myTree = new Tree({ model: myModel, showRoot: false, openOnClick: true, getIconStyle: function (pItem, opened) { if (pItem.type == "DataGroup") { return { width: "0px" }; } else { return { width: "9px", height: "9px", "background-image": "url(Res/Images/Right9.png)", "background-position": "0px" }; } }, }); myTree.placeAt(this.UI_TreeContainer_Div); myTree.startup()
修改节点前面的图标主要是扩展了Tree的getIcoStyle函数。
叶子节点不显示-号主要修改了ObjectStoreModel的mayHaveChildren函数。
分类:
JS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理