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函数。

 

posted @   mytudousi  阅读(440)  评论(3编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示