`

ext tree 更改图标

 
阅读更多
如果在Java代码中树的Node不设置cls的话,Extjs Tree默认的图标是Folder类型的,可以通过CSS来更改图标。位置在ext\resources\css\ext-all.css.

在css文件中找到

.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../images/default/tree/folder.gif);}
.x-tree-node-expanded .x-tree-node-icon{background-image:url(../images/default/tree/folder-open.gif);}
.x-tree-node-leaf .x-tree-node-icon{background-image:url(../images/default/tree/leaf.gif);}

分别是展开前、展开后以及最没有子节点时的图标,我们可以更改成自己想要的图标


    treePanel.on('click',function(n){ 
        n.getUI().getIconEl().src = '../../images/icons/checked.png'; 
    }); 





首先,写一个js文件,扩展Ext.form.comboBox,
Ext.namespace('Ext.ux');
Ext.ux.IconCombo = function(config) {
     Ext.ux.IconCombo.superclass.constructor.call(this, config);

    this.tpl = config.tpl ||
          '<tpl for="."><div class="x-combo-list-item x-icon-combo-item {'
        + this.iconClsField
        + '}">{'
        + this.displayField
        + '}</div></tpl>'
    ;

    this.on({
        render:{scope:this, fn:function() {
            var wrap = this.el.up('div.x-form-field-wrap');
            this.wrap.applyStyles({position:'relative'});
            this.el.addClass('x-icon-combo-input');
            this.flag = Ext.DomHelper.append(wrap, {
                tag: 'div', style:'position:absolute'
            });
        }}
    });
}
Ext.extend(Ext.ux.IconCombo, Ext.form.ComboBox, {
    setIconCls: function() {
        var rec = this.store.query(this.valueField, this.getValue()).itemAt(0);
        if(rec) {
            this.flag.className = 'x-icon-combo-icon ' + rec.get(this.iconClsField);
        }
    },

    setValue: function(value) {
        Ext.ux.IconCombo.superclass.setValue.call(this, value);
        this.setIconCls();
    }

});

必须有此样式对应:
.x-icon-combo-icon {
    background-repeat: no-repeat;
    background-position: 0 50%;
    width: 18px;
    height: 14px;}

把该js 包含到jsp页面上,现在是调用扩展的图标下拉框了:

var icnCombo = new Ext.ux.IconCombo({
        store: new Ext.data.SimpleStore({
            fields: ['iconCode', 'iconName', 'iconCSS'],
            data: [
            ['', '默认样式', ''],          
                ['add', '样式1', 'add'],
                ['edit', '样式2', 'edit'],
                ['details', '样式3', 'details']
            ]
        }),
        valueField: 'iconCode',
        displayField: 'iconName',
        iconClsField: 'iconCSS',
        triggerAction: 'all',
        fieldLabel : '图标样式',
        hiddenName : "menu.iconCls",
        name : "menu.iconCls",
        editable:false,
        mode: 'local',
        id: 'iconCombo',
        width: 160
    });
分享到:
评论

相关推荐

    Ext TreePanel Checked Ext复选框树

    3. **TreeNode对象**:在`Ext JS`中,每个树节点都是一个`TreeNode`对象,它包含了节点的所有属性,如文本、图标、子节点等。对于复选框树,`TreeNode`还包含了复选框的状态信息。 4. **事件监听**:`TreePanel`...

    Ext checktree

    "Ext checktree"是基于Ext JS库的一个组件,专门用于创建可勾选的树形控件。在Web应用中,这种控件常用于展现层级结构的数据,并允许用户进行多级选择。下面我们将深入探讨Ext checktree的相关知识点。 首先,我们...

    Ext树例子

    Ext树还支持许多高级特性,比如拖放操作、节点的展开/折叠、节点的图标和提示、监听节点事件等。通过熟练掌握这些特性,你可以构建出功能强大的树形用户界面,满足各种业务需求。 总结来说,`Ext树例子`是关于如何...

    Ext 开发指南 学习资料

    3.7.3. 默认图标好单调,改一下撒 3.7.4. 偷偷告诉你咋从节点弹出对话框 3.7.5. 小小提示 3.7.6. 给树节点设置超链接 3.8. 灰壳显灵!让我直接修改树节点的名称吧! 3.9. 我拖,我拖,我拖拖拖。 3.9.1. 树形节点的...

    extjs的tree的使用

    对于Tree组件,你可以通过修改`.x-tree-node-icon`、`.x-tree-node-text`等类来调整节点图标和文本的样式。 ### 总结 ExtJS的Tree组件是一个功能强大且高度可定制的工具,用于展示分层数据。通过上述介绍,你应该...

    ext实现动态树

    var tree = new Ext.tree.TreePanel({ layout: "fit", title: "管理文档&lt;/center&gt;", split: true, width: 200, height: 650, animate: false, enableDD: true, collapsible: true, autoScroll: true, root...

    简单的ext树

    每个树节点都由`Ext.data.Model`定义,包含了节点的各种属性,如文本、图标、是否可展开等。通过扩展`Ext.data.TreeModel`,可以自定义节点的行为。 5. **渲染与交互**: 树的外观和交互可以通过配置`viewConfig`...

    EXT2.0中文教程

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...

    通过CSS样式来修改ExtJS:TreePanel的小图标

    .x-tree-node-collapsed .x-tree-node-icon { background:transparent url(web/css/images/default/tree/1.gif); } .x-tree-node-expanded .x-tree-node-icon { background:transparent url(web/css/images/default...

    ExtJs框架系列之filetree 源码

    - **Ext.tree.Panel**:展示TreeStore数据的组件,FileTree通常基于此组件进行扩展。 - **Ext.data.NodeInterface**:定义了树节点的基本行为,如展开、折叠、获取子节点等。 - **Ext.dd.DragDropManager**:处理...

    ext的edittreegrid实现

    3. **添加CellEditing插件**:EXT JS的CellEditing插件使用户能够点击单元格进行编辑,完成后自动保存更改。需在GridPanel上启用此插件,并为每列指定编辑器。 4. **绑定事件**:监听树节点的点击事件,以便在需要...

    EXT核心API详解.doc

    33. **Ext.data.Tree类**:树形数据结构,用于表示层级关系的数据。 34. **Ext.data.Node类**:树结构中的节点,包含了节点的基本属性和操作。 35. **Ext.Action类**:动作类,用于组合UI组件和事件处理。 36. **...

    ext基本布局

    - `var root = new Ext.tree.TreeNode({ text: '', expanded: true, icon: 'treeImg/root.gif' })` 创建了树的根节点,设置其默认展开状态并指定了图标。 - 后续的 `var node1`、`var node2` 等变量分别代表树的...

    Ext学习必备,涵盖大量实例,插件,其他有用组件

    这个包是在之前包的基础上多加了很多功能。 原来的内容: 1ext2.2源码及例子 2深入浅出extJs例子 3自己写的例子 470过个插件 新增内容: ...4动态修改树节点图标和提示层 5ext结合mxGraph作出流程图编辑器

    ext_动态树型的实现

    var tree = new Ext.tree.TreePanel({ layout: "fit", title: "管理文档&lt;/center&gt;", // 面板标题 split: true, width: 200, height: 650, animate: false, // 是否开启动画效果 enableDD: true, // 是否支持...

    27款jQuery Tree 树形结构插件

    - 基于Ext.tree.TreePanel,具有基本的文件/文件夹管理功能,如上传、重命名、删除和移动。 - 具体是否开源未明确。 8. **Yahoo! UI Library: TreeView** - YUI TreeView Control 支持通过XMLHttpRequest动态...

    Ext动态树中文API

    - **类概述**:介绍Ext动态树的主要类,如`Ext.tree.TreePanel`,以及它们的基本用法。 - **配置项**:列出可以用来定制TreePanel的各种配置项,如`rootVisible`(是否显示根节点)、`useArrows`(是否显示箭头图标...

    Extjs教程_第八章_Tree(树)(1)

    Ext.tree组件是用于展示层级数据的重要工具,常用于模拟文件系统、组织结构或其他具有层次关系的信息。以下是对标题和描述中知识点的详细说明: 1. **树形结构**:树是一种常见的数据表示形式,它由节点(如文件或...

    精通JS脚本之ExtJS框架.part1.rar

    10.4 修改节点的默认图标 10.5 从节点弹出对话框 10.6 节点提示信息 10.7 为节点设置超链接 10.8 树形的拖放 10.8.1 节点拖放的3种形式 10.8.2 叶子不能append 10.8.3 判断拖放的目标 10.8.4 树之间的拖放 ...

    Extjs4使用要点个人整理

    8. **改变树的默认样式**:`Ext tree更改默认样式.txt`会介绍如何通过CSS或组件配置来定制树形控件的外观,包括节点的颜色、字体、图标等。 9. **取消树的双击展开**:`Extjs tree取消双击展开.txt`可能讨论如何...

Global site tag (gtag.js) - Google Analytics