extjs2.0 ie8 下拉树_ExtJs下拉树的实现

7a0c4aee68cbef12eca34557b27b74d6.png

直接上代码:

Ext.ux.TreeCombo = Ext.extend(Ext.form.ComboBox, {

constructor : function(cfg) {

cfg = cfg || {};

Ext.ux.TreeCombo.superclass.constructor.call(this, Ext.apply({

maxHeight : 300,

editable : false,

mode : 'local',

triggerAction : 'all',

rootVisible : false,

selectMode : 'all'

}, cfg));

},

store : new Ext.data.SimpleStore({

fields : [],

data : [[]]

}),

// 重写onViewClick,使展开树结点是不关闭下拉框

onViewClick : function(doFocus) {

var index = this.view.getSelectedIndexes()[0], s = this.store, r = s.getAt(index);

if (r) {

this.onSelect(r, index);

}

if (doFocus !== false) {

this.el.focus();

}

},

tree : null,

// 隐藏值

hiddenValue : null,

getHiddenValue : function() {

return this.hiddenValue;

},

setHiddenValue : function(code, dispText) {

this.setValue(code);

Ext.form.ComboBox.superclass.setValue.call(this, dispText);

this.hiddenValue = code;

},

initComponent : function() {

var _this = this;

var tplRandomId = 'deptcombo_' + Math.floor(Math.random() * 1000) + this.tplId

this.tpl = "

this.tree = new Ext.tree.TreePanel({

border : false,

enableDD : false,

enableDrag : false,

rootVisible : _this.rootVisible || false,

autoScroll : true,

trackMouseOver : true,

height : _this.maxHeight,

lines : true,

singleExpand : true,

root : new Ext.tree.AsyncTreeNode({

id : _this.rootId,

text : _this.rootText,

leaf : false,

border : false,

draggable : false,

singleClickExpand : false,

hide : true

}),

loader : new Ext.tree.TreeLoader({

dataUrl : _this.url

})

});

this.tree.on('click', function(node) {

if ((_this.selectMode == 'leaf' && node.leaf == true) || _this.selectMode == 'all') {

// if (node.parentNode && node.parentNode.attributes.id != '000000') {

var dispText = node.text;

var code = node.id;

while (node.parentNode && node.parentNode.attributes.id != '000000') {

if (node.parentNode.text != dispText) {

dispText = node.parentNode.text + dispText;

}

node = node.parentNode;

}

_this.setHiddenValue(code, dispText);

_this.collapse();

}

});

this.on('expand', function() {

this.tree.render(tplRandomId);

});

Ext.ux.TreeCombo.superclass.initComponent.call(this);

}

})

Ext.reg("treecombo", Ext.ux.TreeCombo);

使用示例:

{

xtype : 'treecombo',

name : 'areaName',

tplId : 'tree_tpl',

rootVisible : true,

rootText : '全国',

url : 'loadArea',

fieldLabel : '地区',

maxHeight : 300,

value : '全国',

hiddenValue : '000000',

anchor : '95%'

}

不过通过formPanel.getForm().getValues()是获取不到treecombo的值的,需要自己手工调用

vartreeValue = treeCombo.getHiddenValue();

treeCombo是上面控件的实例

然后通过Ext.apply(formJSON,{areaName:treeValue})对用formJSON中的显示值进行替换

33e444a1df7281eda407ddc50a84e58d.png

大小: 12 KB

1

1

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-08-03 21:04

浏览 3397

评论

2 楼

raywithu

2013-09-23

鸭子听雷公 写道

想看看到底是怎么实现的

上面的代码是齐全的。

1 楼

鸭子听雷公

2013-09-06

想看看到底是怎么实现的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 294. 翻转游戏 II(记忆化递归)

文章目录1. 题目2. 解题1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏, 游戏规则:给定一个只有 和 - 的字符串。 你和朋友轮流将 连续 的两个 "" 反转成 "--"。 当一方无法进行有效的翻转时便意味着游戏结束,则另一方…

mysql 逻辑备份导入数据库_mysql逻辑备份(mysql dump的使用)

mysqldump 属于MySQL客户端工具mysqldump备份工具对于MyISAM存储引擎实现备份是温备份,对innodb存储引擎是可以实现热备份。使用mysqldump备份数据库可以实现完全备份 二进制日志文件,这样也算是完全备份 增量备份。首先将这个数据库备份下来这就是完全…

LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

文章目录1. 题目2. 解题1. 题目 请你设计一个算法,可以将一个 字符串列表 编码成为一个 字符串。 这个编码后的字符串是可以通过网络进行高效传送的,并且可以在接收端被解码回原来的字符串列表。 1 号机(发送方)有如下函数&…

通过SQL Server 2008 访问Oracle 10g

之前写过一篇关于SQL Server 访问MySQL 数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考。 准备工作 事先在需要访问Oracle 数据库的主机上完成以下工作: 1. 安装SQL Server 数据库:SQL Server…

mysql注入技巧原理_MySQL注入技巧总结

0x00 介绍以下所有技巧都只在mysql适用,因为它太灵活了。0x01 MYSQl灵活的语法1 MySQL语法以及认证绕过注释符:#,-- X(X为任意字符)/*(MySQL-5.1);%00or 11;%00or 11 union select 1,2or 11 #/*!50000or*/ 11 -- - //版本号为5.1.38时只要小于…

LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)

文章目录1. 题目2. 解题2.1 二分查找2.2 DP1. 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n)示…

python 强制结束线程_在python中实现强制关闭线程的示例

Python 如何强制关闭线程过去只可以用来回忆,别沉迷在阴影中,否则永远看不清前面的路。Python用sleep停止一个线程的运行,而不影响主线程的运行,案例代码如下: from threading import *import time class MyThread(Thr…

LeetCode 1121. 将数组分成几个递增序列

文章目录1. 题目2. 解题1. 题目 给你一个 非递减 的正整数数组 nums 和整数 K,判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列。 示例 1: 输入:nums [1,2,2,3,3,4,4], K 3 输出:true 解释&#xff…

LeetCode 1272. 删除区间

文章目录1. 题目2. 解题1. 题目 给你一个 有序的 不相交区间列表 intervals 和一个要删除的区间 toBeRemoved&#xff0c; intervals 中的每一个区间 intervals[i] [a, b] 都表示满足 a < x < b 的所有实数 x 的集合。 我们将 intervals 中任意区间与 toBeRemoved 有交…

V折扣购买流程图

以前画的V折扣购买流程图&#xff1a; 转载于:https://www.cnblogs.com/wangkongming/archive/2013/01/16/2862275.html

LeetCode 549. 二叉树中最长的连续序列(树上DP)

文章目录1. 题目2. 解题1. 题目 给定一个二叉树&#xff0c;你需要找出二叉树中最长的连续序列路径的长度。 请注意&#xff0c;该路径可以是递增的或者是递减。 例如&#xff0c;[1,2,3,4] 和 [4,3,2,1] 都被认为是合法的&#xff0c;而路径 [1,2,4,3] 则不合法。 另一方面&…

LeetCode 1230. 抛掷硬币(DP)

文章目录1. 题目2. 解题1. 题目 有一些不规则的硬币。在这些硬币中&#xff0c;prob[i] 表示第 i 枚硬币正面朝上的概率。 请对每一枚硬币抛掷 一次&#xff0c;然后返回正面朝上的硬币数等于 target 的概率。 示例 1&#xff1a; 输入&#xff1a;prob [0.4], target 1 输…

LeetCode 634. 寻找数组的错位排列(DP)

文章目录1. 题目2. 解题1. 题目 在组合数学中&#xff0c;如果一个排列中所有元素都不在原先的位置上&#xff0c;那么这个排列就被称为错位排列。 给定一个从 1 到 n 升序排列的数组&#xff0c;你可以计算出总共有多少个不同的错位排列吗&#xff1f; 由于答案可能非常大&…

LeetCode 489. 扫地机器人(DFS)

文章目录1. 题目2. 解题1. 题目 房间&#xff08;用格栅表示&#xff09;中有一个扫地机器人。 格栅中的每一个格子有空和障碍物两种可能。 扫地机器人提供4个API&#xff0c;可以向前进&#xff0c;向左转或者向右转。每次转弯90度。 当扫地机器人试图进入障碍物格子时&…

LeetCode 1215. 步进数(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 如果一个整数上的每一位数字与其相邻位上的数字的绝对差都是 1&#xff0c;那么这个数就是一个「步进数」。 例如&#xff0c;321 是一个步进数&#xff0c;而 421 不是。 给你两个整数&#xff0c;low 和 high&#xff0c;请你…

python自动化入门_python自动化-python入门

1、安装python&#xff0c;配置环境变量。windows下是安装路径直接配到环境变量里面就可以mac添加环境变量在~/.bash_profile这个文件中&#xff0c;添加一行alias python"/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/bin/python3.7"问…

LeetCode 364. 加权嵌套序列和 II(重复叠加)

文章目录1. 题目2. 解题1. 题目 给一个嵌套整数序列&#xff0c;请你返回每个数字在序列中的加权和&#xff0c;它们的权重由它们的深度决定。 序列中的每一个元素要么是一个整数&#xff0c;要么是一个序列&#xff08;这个序列中的每个元素也同样是整数或序列&#xff09;。…

LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)

文章目录1. 比赛结果2. 题目1. LeetCode 5456. 在区间范围内统计奇数数目 easy2. LeetCode 5457. 和为奇数的子数组数目 medium3. LeetCode 5458. 字符串的好分割数目 medium4. LeetCode 5459. 形成目标数组的子数组最少增加次数 hard1. 比赛结果 双周赛题目比较简单。第一题没…

java发送outlook邮件_通过Java代码发送OutLook邮件

准备我们想通过Java代码实现发送OutLook邮件&#xff0c;必须准备以下材料&#xff1a;OutLook邮箱目标邮箱查看OutLook邮箱信息打开OutLook邮箱&#xff0c;在Settings中搜索或找到SMTP&#xff1a;打开以下界面&#xff0c;拿到我们想要的数据(ServerName 以及 Port)&#xf…

LeetCode 第 199 场周赛(757/5231,前14.5%)

文章目录1. 比赛结果2. 题目1. LeetCode 5472. 重新排列字符串 easy2. LeetCode 5473. 灯泡开关 IV medium3. LeetCode 5474. 好叶子节点对的数量 medium4. LeetCode 5462. 压缩字符串 II hard1. 比赛结果 第一题失误&#xff0c;点完提交就跑了&#xff0c;没想到。。第四题D…