cls extjs5_73. 解决ExtJS TreePanel 的 iconCls设置问题

article/2025/10/14 12:21:04

转自:https://blog.csdn.net/hanchuang213/article/details/62881568

很久没有写代码了,最近在做一个在线帮助网站,于是又捡起了 ExtJS,我用 TreePanel 做为左边栏的导航树,我希望能够根据节点指向的内容来定义节点的图标,如以下的样子:

展开节点以前

20120702011253328.png

展开节点以后

20120702011254568.png

如果节点包含有子节点,则该节点就有 “展开” 和 “关闭” 这两种状态,我希望能过通过设置自己的样式表来控制指定节点的这两种状态下的图标,就如上图那样。

查看了 ExtJS 的帮助文档,文档提到 Ext.Tree.Panel 有一个 iconCls 设置项,但寥寥数语,没有详细的介绍如何使用,更没有提供范例代码:

20120702011254598.png

于是我在节点数据中添加了这个属性(我借用了ExtJS 提供的范例 layout-browser 来测试),并参考了网站上搜索到的许多方法试着去实现这个效果,节点数据如下所示:

20120702011254894.png

但却发现,无论我怎么定义 CSS ,均不能实现我所需要的效果,通过以下样式定义,只能设置节点 “关闭” 状态的图标,一旦展开节点,图标仍是默认的文件夹

样式表如下:

20120702011255393.png

也就是只有 .myicon {...},和 .myicon2 {...}, 这两行定义有效,第二行定义展开节点样式的设置没有起作用,尽管网上提供了许多的范例,逐一试过均无效果(我用的是 ExtJS 4.1.0,不知道是不是版本的问题)。

于是开始分析 ExtJS 的代码了,在  ext-all-dev.js 找到定义节点图标样式的代码(打开文件,用

“expandedCls” 关键字搜索可以找到相应的代码段 ),分析后我认为,ExtJS 没有很好的处理 iconCls

这个属性,我们需要做一点修改,红色框部分是我添加的代码,添加后问题解决了,而且从原来的代码看,这里应该还定义了叶子节点(leaf 为 true

的节点 )和节点加载数据时的图标状态,这里我仅对节点的 “展开” 和 “关闭” 这两种状态做了测试,其他的大家可以自己尝试一下。

20120702011255150.png

附:

Json代码:

[javascript] view plaincopy

{

text: '.',

children: [{

text:'Basic Ext Layouts',

iconCls:'myicon',

expanded: false,

children:[{

text:'Absolute',

id:'absolute',

iconCls: 'myicon2',

leaf:true

}]

},{

text:'Custom Layouts',

children:[{

text:'Center',

id:'center',

leaf:true

}]

},{

text:'Combination Examples',

iconCls:'myicon2',

children:[{

text:'Absolute Layout Form',

id:'abs-form',

leaf:true

},{

text:'Tabs with Nested Layouts',

id:'tabs-nested-layouts',

leaf:true

}]

}]

}

样式表设置代码:

[css]

.myicon {background-image: url(images/spellcheck.png)}

.x-grid-tree-node-expanded .myicon

{

/* the icon */

background-image: url(images/printer.png);

}

.myicon2 {background-image: url(images/page_attach.png)}

.x-grid-tree-node-expanded .myicon2

{

/* the icon */

background-image: url(images/disk.png);

}

修改代码段:

[javascript]

for (; i < len; i++) {

row = rows[i];

record = records[i];

if (record.get('qtip')) {

row.rowAttr = 'data-qtip="' + record.get('qtip') + '"';

if (record.get('qtitle')) {

row.rowAttr += ' ' + 'data-qtitle="' + record.get('qtitle') + '"';

}

}

if (record.isExpanded()) {

row.rowCls = (row.rowCls || '') + ' ' + this.expandedCls;

}

if (record.isLeaf()) {

row.rowCls = (row.rowCls || '') + ' ' + this.leafCls;

}

if (record.isLoading()) {

row.rowCls = (row.rowCls || '') + ' ' + this.loadingCls;

}

if (record.get('iconCls').length > 0) {

row.rowCls = (row.rowCls || '') + ' ' + record.get('iconCls');

}

}

作者:sz_gambol


http://chatgpt.dhexx.cn/article/SQrLYHpZ.shtml

相关文章

常规功能和模块自定义系统 (cfcmms)—025开发日志(创建iconCls的field)

常规功能和模块自定义系统 (cfcmms)—025开发日志(创建iconCls的field) 这一节是临时插入的工作日志。 在本系统中可以自定义某些图标&#xff0c;图标的样式都是手工录入的&#xff0c;为了能直观的选择iconCls中的图标&#xff0c;开发了此控件。extjs中内置了font-awesome字…

UniGui中使用IconCls

在使用UniGui的时候&#xff0c;我时候我们需要使用系统自己的图标&#xff0c;通常会如下图一样的使用方式&#xff1a; 选择ICON对齐方式及系统定义好的ICON对应值。但实际上UniGui中可以使用的图标远远大于他已定义的这十几个&#xff08;或者应该说是EXJS原本就多&#xff…

UniGui iconCls字符图标的引用

游览unigui官方论坛&#xff0c;发现了iconCls字符图标的引用功能&#xff0c;测试了一下&#xff0c;很好用。 引用格式&#xff1a;iconCls: {fontCls} {iconPrefix}-{iconName} 例子&#xff1a;iconCls: x-fa fa-home

Easyui-iconCls 的队应图标

(iconCls : ‘icon-cancel’,)(iconCls : ‘icon-add,)(iconCls : ‘icon-edit,) (iconCls : ‘icon-remove,)(iconCls : ‘icon-save,)(iconCls : ‘icon-cut,) (iconCls : ‘icon-ok,)(iconCls : ‘icon-no,)(iconCls : ‘icon-reload,) (iconCls : ‘icon-search,)(iconC…

easyui iconCls属性值

easyui iconCls属性值 icon-add icon-print icon-mini-add icon-cvs icon-play icon-refresh icon-edit icon-help icon-mini-edit icon-pencil icon-remove icon-undo icon-mini-refresh icon-save icon-redo icon-cut icon-back icon-ok icon-sum icon-no icon-tip ico…

拓展07-EasyUI自定义iconCls菜单图标icon

1、效果图 左侧菜单树&#xff0c;和选项卡tabs显示自定义图标。 先推荐一个icon图标下载的网站&#xff1a;https://www.easyicon.net/ 2、iconCls属性 3、准备图标icon 可以从上面推荐的网址下载&#xff0c;基本上各种类型都有 将下载好的图标放入easyui图标文件夹内web…

EXTJs 中icon 与iconCls的区别及用法!

1、这俩个都是引入小图片 区别在于&#xff1a; (1)、icon :"直接写图片在项目上的路径" (2)、iconCls:"css样式名称" icon 显示时为下面的添加&#xff1a; iconCls 显示为下面的添加&#xff1a; 大家都看到区别了吧&#xff01; 2、iconCls代码&…

分类算法之二——特征提取与特征选择

典型应用——文本分类 1&#xff09;文本信息的表示&#xff0c;从原始的文本转化为结构化的可处理信息&#xff1b; 2&#xff09;目前常采用向量空间模型来描述文本向量&#xff0c;通常文本向量维度较高&#xff0c;使得分类效率低下&#xff1b; 3&#xff09;必须对特…

机器学习5种特征选择的方法!

我们知道模型的性能会随着使用特征数量的增加而增加。但是&#xff0c;当超过峰值时&#xff0c;模型性能将会下降。这就是为什么我们只需要选择能够有效预测的特征的原因。 特征选择类似于降维技术&#xff0c;其目的是减少特征的数量&#xff0c;但是从根本上说&#xff0c;它…

特征选择算法分类

坊间常说&#xff1a;“数据和特征决定了机器学习的上限&#xff0c;而模型和算法只是逼近这个上限而已”。由此可见&#xff0c;特征工程在机器学习中占有相当重要的地位。在实际应用当中&#xff0c;可以说特征工程是机器学习成功的关键。 首先&#xff0c;从特征开始说起&am…

特征选择基本思想与relieff算法

特征选择 如果特征参数不足&#xff0c;则很容易引发数据重叠的现象&#xff0c;所有分类器都将不起作用&#xff1b;如果特征参数太多&#xff0c;则可能会消耗大量时间和计算资源。特征选择可以通过消除冗余的特征来提高分类算法的准确性&#xff0c;并减少其计算复杂度。特…

特征选择算法总结

1 综述 (1) 什么是特征选择 特征选择 ( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ) &#xff0c;或属性选择( Attribute Selection ) &#xff0c;是指从全部特征中选取一个特征子集&#xff0c;使构造出来的模型更好。 (2) 为什么要做特征选择 …

特征选择算法 | Matlab实现基于互信息特征选择算法的回归数据特征选择 MI

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab实现基于互信息特征选择算法的回归数据特征选择 MI 部分源码 %--------------------

如何进行特征选择?

特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和…

用遗传算法进行特征选择

文章目录 一、问题举例二、算法描述1、基于类内类间距离的可分性判据2、遗传算法&#xff08;Genetic Algorithm&#xff09;1) 初始化种群2&#xff09;计算当前种群 M&#xff08;t&#xff09;中每条染色体的适应度值 f&#xff08;m&#xff09;3&#xff09;基于适应度值的…

特征选择-常见的搜索算法

2.2.1完全搜索 完全搜索分为穷举搜索(Exhaustive)与非穷举搜索(Non-Exhaustive)两类。 (1) 广度优先搜索( Breadth First Search ) 算法描述&#xff1a;广度优先遍历特征子空间。 算法评价&#xff1a;枚举了所有的特征组合&#xff0c;属于穷举搜索&#xff0c;时间复杂度是O…

【特征选择】使用遗传算法进行特征选择

遗传算法寻优 cross_val_score(lgb,train_X,train_y,scoringf1,cvsKfold).mean() # 使用全部特征进行训练0.8508040614085857train_1 train.drop(label,1) cols train_1.columnstrain_1.head()经营期限起是否广告经营是否城镇从业人数注册资本&#xff08;金&#xff09;实…

特征选择 ReliefF算法

一、算法 Relief算法最早由Kira提出. 基本内容&#xff1a;从训练集D中随机选择一个样本R, 然后从和R同类的样本中寻找k最近邻样本H&#xff0c;从和R不同类的样本中寻找k最近邻样本M&#xff0c; 最后按照公式更新特征权重. 算法: 1.置0所有特征权重 2.For i1 to m do 2.1 随机…

特征选择算法-Relief(转)

【转载】数据挖掘之—基于ReliefF和K-means算法的医学应用实例(转自&#xff1a; http://www.cnblogs.com/asxinyu/archive/2013/08/29/3289682.html&#xff09; 数据挖掘方法的提出&#xff0c;让人们有能力最终认识数据的真正价值&#xff0c;即蕴藏在数据中的信息和知识。数…

机器学习特征选择—使用遗传算法进行特征选择

目录 0、前言 1、遗传算法概念 2、基于DEAP库的python遗传算法特征选择 3、我的遗传算法特征选择代码及一些代码函数解析 4、完整代码 5、可能会遇到的错误 0、前言 差不多有大半年没有写博客了&#xff0c;这段时间没有学习什么新的知识和总结&#xff1b;这篇博客内容也…