- 浏览: 390924 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
消失-IT超市:
方便加一下你的QQ吗,我的QQ是252375879,有个问题请 ...
js调用ocx控件(读写IC卡) -
mszb00123:
很有用
Extjs之--图片上传器 -
shouhouhuakai:
好崇拜,不错
URLConnection的连接、超时、关闭用法总结 -
wujierd:
写得好详细,学习了
URLConnection的连接、超时、关闭用法总结 -
paruke:
请问这个能加上图片旋转功能么 我试了一下 发现寻找中心点是个问 ...
Extjs之--图片浏览器
1、效果如图
2、 引入TreeField控件(转载)
Ext.form.TreeField = Ext.extend(Ext.form.TriggerField, { /** * @cfg {Boolean} readOnly * 设置为只读状态 * */ readOnly : true , /** * @cfg {String} displayField * 用于显示数据的字段名 * */ displayField : 'text', /** * @cfg {String} valueField * 用于保存真实数据的字段名 */ valueField : null, /** * @cfg {String} hiddenName * 保存真实数据的隐藏域名 */ hiddenName : null, /** * @cfg {Integer} listWidth * 下拉框的宽度 */ listWidth : null, /** * @cfg {Integer} minListWidth * 下拉框最小宽度 */ minListWidth : 50, /** * @cfg {Integer} listHeight * 下拉框高度 */ listHeight : null, /** * @cfg {Integer} minListHeight * 下拉框最小高度 */ minListHeight : 50, /** * @cfg {String} dataUrl * 数据地址 */ dataUrl : null, /** * @cfg {Ext.tree.TreePanel} tree * 下拉框中的树 */ tree : null, /** * @cfg {String} value * 默认值 */ value : null, /** * @cfg {String} displayValue * 用于显示的默认值 */ displayValue : null, /** * @cfg {Object} baseParams * 向后台传递的参数集合 */ baseParams : {}, /** * @cfg {Object} treeRootConfig * 树根节点的配置参数 */ treeRootConfig : { id : ' ', text : '全国', draggable:false }, /** * @cfg {String/Object} autoCreate * A DomHelper element spec, or true for a default element spec (defaults to * {tag: "input", type: "text", size: "24", autocomplete: "off"}) */ defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, initComponent : function(){ Ext.form.TreeField.superclass.initComponent.call(this); this.addEvents( 'select', 'expand', 'collapse', 'beforeselect' ); }, initList : function(){ if(!this.list){ var cls = 'x-treefield-list'; this.list = new Ext.Layer({ shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false }); var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth); this.list.setWidth(lw); this.list.swallowEvent('mousewheel'); this.innerList = this.list.createChild({cls:cls+'-inner'}); this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); this.innerList.setHeight(this.listHeight || this.minListHeight); if(!this.tree){ this.tree = this.createTree(this.innerList); } this.tree.on('click',this.select,this); this.tree.render(); } }, onRender : function(ct, position){ Ext.form.TreeField.superclass.onRender.call(this, ct, position); if(this.hiddenName){ this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)}, 'before', true); this.hiddenField.value = this.hiddenValue !== undefined ? this.hiddenValue : this.value !== undefined ? this.value : ''; this.el.dom.removeAttribute('name'); } if(Ext.isGecko){ this.el.dom.setAttribute('autocomplete', 'off'); } this.initList(); }, select : function(node){ if(this.fireEvent('beforeselect', node, this)!= false){ this.onSelect(node); this.fireEvent('select', this, node); } }, onSelect:function(node){ this.setValue(node); this.collapse(); }, createTree:function(el){ var Tree = Ext.tree; var tree = new Tree.TreePanel({ el:el, autoScroll:true, animate:true, containerScroll: true, rootVisible: false, loader: new Tree.TreeLoader({ dataUrl : this.dataUrl, baseParams : this.baseParams }) }); var root = new Tree.AsyncTreeNode(this.treeRootConfig); tree.setRootNode(root); return tree; }, getValue : function(){ if(this.valueField){ return typeof this.value != 'undefined' ? this.value : ''; }else{ return Ext.form.TreeField.superclass.getValue.call(this); } }, setValue : function(node){ //if(!node)return; var text,value; if(node && typeof node == 'object'){ text = node[this.displayField]; value = node[this.valueField || this.displayField]; }else{ text = node; value = node; } if(this.hiddenField){ this.hiddenField.value = value; } Ext.form.TreeField.superclass.setValue.call(this, text); this.value = value; }, onResize: function(w, h){ Ext.form.TreeField.superclass.onResize.apply(this, arguments); if(this.list && this.listWidth == null){ var lw = Math.max(w, this.minListWidth); this.list.setWidth(lw); this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); } }, validateBlur : function(){ return !this.list || !this.list.isVisible(); }, onDestroy : function(){ if(this.list){ this.list.destroy(); } if(this.wrap){ this.wrap.remove(); } Ext.form.TreeField.superclass.onDestroy.call(this); }, collapseIf : function(e){ if(!e.within(this.wrap) && !e.within(this.list)){ this.collapse(); } }, collapse : function(){ if(!this.isExpanded()){ return; } this.list.hide(); Ext.getDoc().un('mousewheel', this.collapseIf, this); Ext.getDoc().un('mousedown', this.collapseIf, this); this.fireEvent('collapse', this); }, expand : function(){ if(this.isExpanded() || !this.hasFocus){ return; } this.onExpand(); this.list.alignTo(this.wrap, this.listAlign); this.list.show(); Ext.getDoc().on('mousewheel', this.collapseIf, this); Ext.getDoc().on('mousedown', this.collapseIf, this); this.fireEvent('expand', this); }, onExpand : function(){ var doc = Ext.getDoc(); this.on('click',function(){alert(111)},this); }, isExpanded : function(){ return this.list && this.list.isVisible(); }, onTriggerClick : function(){ if(this.disabled){ return; } if(this.isExpanded()){ this.collapse(); }else { this.onFocus({}); this.expand(); } this.el.focus(); } }); Ext.reg('treeField', Ext.form.TreeField);
3、使用该控件1
{ xtype: 'treeField', name: 'pigSource', fieldLabel: '来源地', emptyText:'选择来源地...', listWidth:200, listHeight:200, readOnly:false, dataUrl:'selectCouty.do' }
使用该控件2
xtype: 'treeField', hiddenName: 'pigSourceName', id:'pigSourceName_dzid', displayField : 'text', valueField: 'id', fieldLabel:'产地', labelSeparator: ':' + ' <img src="'+ Ext.NEEDED_IMAGE_URL + '"/>', emptyText:'选择产地...', listWidth:200, listHeight:200, readOnly:false, dataUrl:'selectCouty.do', allowBlank : false, blankText :'请选择产地', listeners:{ select:{ fn: function(cob){ var rvtext = cob.getRawValue(); var rvid = cob.getValue(); if(rvid.length!=0){ Ext.getCmp('pigSourceNo_dzid').setValue(rvid); Ext.getCmp('pigSourceName_dzid').setValue(rvtext); } } } }, msgTarget :'side'
4、数据来源通过selectCounty.do获取(如下例子)
@RequestMapping("/selectCouty.do") public String selectCouty(Model model) { List<County> provincelist = null; List<County> citylist = null; List<County> countylist = null; County province = null; // 省级 County city; // 市级 County county;//县级 provincelist = new ArrayList<County>(); province = new County("620000", "甘肃省"); citylist = new ArrayList<County>(); city = new County("620100", "兰州市"); countylist = new ArrayList<County>(); county = new County("620101", "市辖区"); county = new County("620102", "城关区"); county = new County("620103", "七里河区"); countylist.add(county); city.setChildren(countylist); citylist.add(city); province.setChildren(citylist); provincelist.add(province); JSONArray json = JSONArray.fromObject(provincelist); return JsonUtils.returnJsonModelAndView(model, json); }
发表评论
-
【转】ExtJS日历控件在chrome显示异常(布满整个屏幕)的解决办法
2014-12-01 15:33 775解决办法: 一、在date ... -
支持手工输入的combo问题处理
2014-11-15 16:01 6461、说明 可手工输入内容的combo,当手工输入值后,提交 ... -
Extjs grid 合计
2012-05-31 14:28 19201、直接在客户端统计,动态的修改Grid 2、代码如下 ... -
extjs2.x中带有拼音检索功能combo
2012-04-22 16:17 23321、extjs2.2版本 2、js代码示例 / ... -
Extjs2.x中使用htmleditor遇到的问题记录
2011-10-16 10:37 17321、IE6下htmleditor文本编辑器无法显示 解决:删 ... -
Extjs ComboBox根据条件的分页查询
2011-09-07 19:07 13761、说明 extjs combo经常会根据其他文本框 ... -
Extjs2.x bug解决-Combobox,hideTrigger:true 在IE下无法显示
2011-09-07 18:09 1523关于Exjts2.2.1中comboBox控件设置了hideT ... -
Extjs数据提交方式--单独Ajax提交
2011-08-07 11:31 45151、一般分为“form的submit提交”、“单独Ajax提交 ... -
extjs项目断网,图片显示不全
2011-01-10 23:23 16671、造成该问题的原因 在导入的JavaScript ... -
关于修补Ext2.2 datefield IE8 下显示不全的bug
2010-09-09 22:44 2258关于Exjts2.2.1中datefield控件在IE8下显示 ... -
Extjs之--图片上传器
2010-09-03 23:54 120861、效果图: 点击文本框后图标,弹出图片上传窗口 ... -
Extjs之--图片浏览器
2010-08-31 22:31 77111、效果图 2、此实例是在 http://yourga ... -
Extjs之--带分页的lovcombo控件
2010-08-26 23:14 29881、效果图: 2、js部分 { id:'l ... -
Extjs grid带分页的查询
2009-09-09 12:32 63051、先按条件查询数据,再点下一页保留住查询条件,解决方案是将查 ... -
Extjs之--combox分页功能
2009-03-15 22:16 4553效果图: js部分 关键参数: mode:'r ...
相关推荐
Ext JS 是一个强大的JavaScript库,专门用于构建富客户端应用程序。在Web开发中,它提供了丰富的组件库,包括各种用户界面元素,如表格、面板、窗口、菜单等。下拉树(Dropdown Tree)是Ext JS中的一种特殊控件,它...
在EXTJS4中,实现一个下拉树(Combobox Tree)并支持多选和复选功能,主要是通过自定义组件(Ext....在实际开发中,可以将此组件引入到你的EXTJS应用中,然后根据项目的实际数据模型和业务逻辑进行相应的定制和扩展。
在实际项目中,ComboboxTree可以广泛应用于数据选择场景,比如在用户权限分配、产品分类选择、地区选择等。通过合理的配置和定制,可以提高用户体验,减少用户操作的复杂性。 7. **代码示例** 创建一个基本的...
在ExtJS中,为了实现一个具有下拉树结构的ComboBox,即...这在需要用户选择层级关系数据的场景中非常有用,例如部门选择、地区选择等。通过自定义组件,开发者可以灵活地定制UI交互和功能,以满足特定项目的需求。
在IT行业中,ExtJS是一个非常流行的JavaScript框架,用于构建富客户端Web应用程序。它提供了丰富的组件库,其中包括下拉列表树控件(ComboBox Tree),这种控件结合了下拉列表和树形结构,使得用户能够在一个下拉...
ExtJS 中的 xtype.typename 介绍 ExtJS 中的 xtype 是一个非常重要的概念,它用于定义组件的类型,从而确定组件的行为和样式。xtype 是 ExtJS 的核心组件之一,它提供了大量的组件类型,满足不同场景下的需求。 ...
3. **`combo`** - `Ext.form.ComboBox`,下拉框组件,用于创建下拉选择框。 4. **`datefield`** - `Ext.form.DateField`,日期选择项,用于输入日期。 5. **`timefield`** - `Ext.form.TimeField`,时间录入项,...
- **`combo` (Ext.form.ComboBox)**: 下拉框组件,提供了一个下拉列表供用户选择。 - **`datefield` (Ext.form.DateField)**: 日期选择项组件,用于输入日期值。 - **`timefield` (Ext.form.TimeField)**: 时间录入...
- **用途**: 选择国家、地区、类别等。 **Ext.form.DateField** - **描述**: 日期选择项,用户可以输入或选择日期。 - **用途**: 事件日期、出生日期等。 **Ext.form.TimeField** - **描述**: 时间录入项,用户...
### ExtJS xtype 类型概述 在ExtJS框架中,`xtype`是一种用于标识特定组件类型的简短字符串,便于在配置对象中快速定义组件。本文将深入探讨ExtJS中的各种`xtype`类型,帮助开发者更好地理解并运用这些组件。 ####...