- 浏览: 238016 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
月度银墙:
wangxiang243 写道不错 !但是ext4中六月和十二 ...
ext2,3,和4 版本 只显示年月的日期插件 -
38123978:
你好,我最近在看cassandra的性能,我想问一下5000万 ...
Cassandra学习笔记3 -
zhaojinmeng:
您好楼主,extjs5要怎么扩展啊?求指导
ext2,3,和4 版本 只显示年月的日期插件 -
love_wting:
为什么下拉框的表格样式显示了,数据访问json也从数据库中取到 ...
Extjs 下拉grid -
laungcisin:
yangxiutian 写道另外Ext4.2.1还故意把x-m ...
ext2,3,和4 版本 只显示年月的日期插件
总结自己的代码 可能以后会用到 记录一下 方便以后查阅
1:所以显示window 的所需的代码
MyExt.Utils.myWindow = Ext.extend(Ext.Window, { shadow:false, closeAction:'hide', layout:'fit', closable:true, resizable:false, modal:true, constrain:true, listeners:{ hide:function(w){ if(w.items){ w.items.each(function(f){ if(f.getXType()=="form"){ f.form.reset(); } }); } } }, initComponent: function(config){ Ext.apply(this,config); MyExt.Utils.myWindow.superclass.initComponent.call(this); } });
使用例子:
var win = new MyExt.Utils.myWindow({ height:600 ,width:650 ,items:[form] })
2:jsonStore
MyExt.Utils.myJsonStore = Ext.extend(Ext.data.JsonStore, { constructor: function(config){ var cfg = { totalProperty: "totalCount",//总数 root: "items",//grid的数据 autoLoad:false, //是否自动加载 autoDestroy:true, //自动销毁 idProperty: 'id' //一个数据对象的参数名,它包含了一条记录的标识符。 默认为 id }; //把cfg对象的所有属性覆盖到congfig对象里面 //如果congfig对象已经存在cfg的属性 则不覆盖 Ext.applyIf(config,cfg); MyExt.Utils.myJsonStore.superclass.constructor.call(this,config); } });
使用例子:
store = new MyExt.Utils.myJsonStore({ url:"....action", fields:[ {"name":"yyshd","type":"string","mapping":"yyshd"}, {"name":"hm","type":"string","mapping":"hm"}, {"name":"sf","type":"string","mapping":"sf"}, {"name":"ds","type":"string","mapping":"ds"}, {"name":"yysid","type":"int","mapping":"yysid"}, {"name":"qy","type":"int","mapping":"qy"} ] });
3:行提示
function showGjToolTip(_grid){ var _store = _grid.getStore(); var view = _grid.getView(); _grid.tip = new Ext.ToolTip ({ target:view.mainBody, delegate:'.x-grid3-row', trackMouse :true, width:230, autoHide:true, title:"告警信息", dismissDelay:5000, //默认5秒后提示框消失 frame:true, renderTo:document.body, bodyStyle:"color:red",//字体颜色 //floating:{shadow:false,shim:true,useDisplay:true,constrain:false}, listeners:{ beforeshow:function updateTipBody(tip){ var rowIndex = view.findRowIndex(tip.triggerElement); if(_store.getAt(rowIndex).get("sfgj")==0){ return false; tip.destroy(); }else{ tip.body.dom.innerHTML=_store.getAt(rowIndex).get("gjxx"); } } } }) }
4:获得一个不带复选框的树的所有子节点的id
function getTreeChildIds(node){ var r = []; var f = function(){ r.push(this.id); }; node.cascade(f); return r; }
调用例子
var rootNode = tree.getRootNode(); //获取主节点 var result = getTreeChildIds(rootNode ); alert(result );
5:对Ext中DateField字段的扩展 (转自: http://gaoliujie.iteye.com/blog/703839 )
Ext中的DateField字段默认显示格式为'm/d/Y',不太符合中国的使用习惯,以'-'号隔开,或直接显示'xxxx年x月x日'的格 式,并且在同一个软件系统中,通常情况会希望日期的显示格式都相同,不要在每个页面中单独设置显示样式。
另外,由于后台传输到前台的格式一般都是java中的Date类型,直接传输到前台会因为Ext中的时区设置问题造成转换错。
基于以上原因,扩展Ext中的DateField字段类型,代码如下所示:
justgin.bap.DateFieldEx = Ext.extend(Ext.form.DateField,{ format:"Y-m-d", initComponent: function() { this.hideTrigger = this.readOnly; justgin.bap.DateFieldEx.superclass.initComponent.call(this); }, setValue:function(value){ var date = this.formatDate2(value); justgin.bap.DateFieldEx.superclass.setValue.call(this, date); }, // private ,ext自己有个formatDate方法,因此这里用formatDate2 formatDate2 : function(date){ //CST时间和UTC时差转换 var dateStr=date.toString(); var position=dateStr.indexOf("UTC"); if(position!=-1){ return Ext.util.Format.date(date, this.format); }else{ var vdate=new Date(date); //后台默认为格林尼治时间,该方法会默认把后台时间认为是北京时间,北京时间比格林尼治时间多14小时。 //找出当地时间偏移值的毫秒数 var localOffset=vdate.getTimezoneOffset()*60000; var utcOffset= vdate.getTime() + localOffset; timezone=utcOffset-6*3600000;// var lastDate=new Date(timezone); return Ext.util.Format.date(lastDate, this.format); } } });
6:对Ext中CheckBox的扩展 (转自:http://gaoliujie.iteye.com/blog/703833 )
使用Ext中的Checkbox时,经常需要随form一起提交,但Checkbox设置的默认的提交值为"on"或"",后台代码中需要对字段的提交进行判断后取值,不符合我们通常的使用习惯,即直接将提交的值转换为对应的boolean类型,为此,特进行扩展和封装,以满足通过的使用方式,代码如下:
justgin.bap.CheckboxEx = Ext.extend(Ext.form.Checkbox, { trueValue: true, falseValue: false, hiddenField: {value:''}, onRender : function(ct, position){ justgin.bap.CheckboxEx.superclass.onRender.call(this, ct, position); var hidden = this.el.insertSibling({tag:'input', type:'hidden', name: this.name}, 'before', true); hidden.value = this.hiddenField.value; this.hiddenField = hidden; this.el.dom.removeAttribute('name'); this.on('check', this.onCheck); }, setValue : function(v){ var me = this; justgin.bap.CheckboxEx.superclass.setValue.call(this, v); this.hiddenField.value = this.checked?me.trueValue:me.falseValue; }, getValue : function(v){ return this.hiddenField.value; }, onDestroy : function(){ Ext.destroy(this.wrap); justgin.bap.CheckboxEx.superclass.onDestroy.call(this); }, onCheck : function(me, checked){ this.hiddenField.value = checked?me.trueValue:me.falseValue; } });
7:grid 上移 下移
Ext.apply(Ext.grid.GridPanel.prototype, { moveUp : function() { var d = this.getStore(); var c = this.getColumnModel(); var r = this.getSelectionModel().getSelections(); var idx; if (r.length == 0) { Ext.Msg.alert('提示', '请选择记录进行操作!'); return; } if (r.length == d.getCount()) return; if (d.indexOf(r[0]) == 0) return; for (var i = 0; i < r.length; i++) { idx = d.indexOf(r[i]) - 1; d.remove(r[i]); d.insert(idx, r[i]); } this.getSelectionModel().selectRow(idx); this.reconfigure(d, c); }, moveDown : function() { var d = this.getStore(); var c = this.getColumnModel(); var r = this.getSelectionModel().getSelections(); var idx; var idx; var len = r.length; if (len == 0) { Ext.Msg.alert('提示', '请选择记录进行操作!'); return; } if (len == d.getCount()) return; if (d.indexOf(r[len - 1]) == d.getCount() - 1) return; for (var i = 0; i < len; i++) { idx = d.indexOf(r[len - i - 1]) + 1; d.remove(r[len - i - 1]); d.insert(idx, r[len - i - 1]); } this.getSelectionModel().selectRow(idx); this.reconfigure(d, c); } });
8:自定义事件 来自我的ext群:23334375中的中国加油所写
<script type="text/javascript"> Ext.onReady(function(){ Ext.ExtendPanel= Ext.extend(Ext.Panel,{ initComponent:function(){ Ext.ExtendPanel.superclass.initComponent.call(this); this.addEvents("click"); }, onRender: function(ct, position){ Ext.ExtendPanel.superclass.onRender.apply(this, arguments); var c = this.body; c.on("click", this.onClick, this); }, onClick:function(e){ this.fireEvent("click", e); } }); var ep=new Ext.ExtendPanel({ renderTo:'panel', width:500, height:500, html:'点击试试', listeners:{ click:function(e){ alert("被点击了!"+e.getTarget()); } } }); }); </script> </head> <body> <div id="panel"></div> </body> </html>
9:五步掌握Ext的拖放好文章地址:
http://blog.csdn.net/zhangxin09/archive/2010/05/03/5551665.aspx
10:Ext extend解释好文章
http://kaizhongfan.blog.163.com/blog/static/108708240201012411257716/
http://damoqiongqiu.iteye.com/blog/370591
11:用户界面与业务逻辑的解耦(来自:http://nickevin.iteye.com/blog/691340)
UI定义
// Account.ui.js 定义UI AccountUi = Ext.extend(Ext.form.FormPanel, { title: 'Account', labelWidth: 100, labelAlign: 'left', layout: 'form', width: 600, frame: true, initComponent: function() { this.items = [ { xtype: 'container', autoEl: 'div', layout: 'column', items: [ { xtype: 'container', autoEl: 'div', layout: 'form', columnWidth: 0.5, items: [ { xtype: 'textfield', fieldLabel: 'First Name', anchor: '95%', name: 'fname', ref: '../../fname' }, { xtype: 'datefield', fieldLabel: 'Birth of day', anchor: '95%', name: 'birthday', ref: '../../birthday' } ] }, { xtype: 'container', autoEl: 'div', layout: 'form', columnWidth: 0.5, items: [ { xtype: 'textfield', fieldLabel: 'Last Name', anchor: '95%', name: 'lname', ref: '../../lname' }, { xtype: 'combo', fieldLabel: 'Sex', anchor: '95%', name: 'sex', ref: '../../sex' } ] } ] }, { xtype: 'htmleditor', anchor: '98%', fieldLabel: 'Memo', height: 150, width: 300, name: 'memo', ref: 'memo' } ]; this.fbar = { xtype: 'toolbar', items: [ { xtype: 'button', text: 'Save', ref: '../saveBtn' }, { xtype: 'button', text: 'Reset', ref: '../resetBtn' } ] }; AccountUi.superclass.initComponent.call(this); } });
BL和事件处理
// Account.js 处理业务逻辑和事件 关于如何引用到Form中的变量, 请参考 组件的 ref 的定义与配置 Account = Ext.extend(AccountUi, { initComponent: function() { Account.superclass.initComponent.call(this); this.saveBtn.on('click', this.doSaveAction, this); }, doSaveAction: function() { alert('do business A....'); alert('do business B....'); } });
组织
// index.js Ext.onReady(function() { var account = new Account({ renderTo: Ext.getBody() }); account.show(); });
上面的显示效果:
未完 总结中...
发表评论
-
js原型分析研究
2012-07-23 22:44 1479原型是个很微妙的东西,很多人不是很理解,理解了原型对于 ... -
Ext4.1.0 API中文版V0.4 Beta(持续更新)
2012-07-17 18:40 1075Ext4.1.0 API中文版V0.4 Beta html ... -
记录回答别人的Ext4问题
2012-07-10 13:23 26781:Ext4版本 双击Tab页面页签关闭 来自问题:ht ... -
Extjs4 时分秒日期插件
2012-05-11 13:05 12392插件1: 初始界面 弹出界面 插件代码 见附件 ... -
Ext3 日期范围插件
2012-04-03 17:32 2159先上 效果图有图有真相嘛 使用例子: ... -
Extjs2分页树 带查询功能
2012-03-29 11:37 4214先上效果图: 插件代码见附件 使 ... -
ext2 日期范围控件(2个控件)
2012-03-25 17:39 3057控件1 介绍: 首先加入 Ext.apply( ... -
ext2 grid 封装 (包含增删改查 导入导出等操作)
2012-02-27 14:32 5047最近项目又用到ext 比较 ... -
tree拖拽
2011-09-04 22:09 2463当时遇到如下问题: 拖拽A tree 的a节点到B tree ... -
ExtJS Web应用程序开发指南(第2版)(针对Ext JS 4.0更新)源代码
2011-08-11 14:56 1102ExtJS Web应用程序开发指南(第2版)(针对Ext JS ... -
通过拖拽Grid改变行的顺序
2010-10-08 13:06 3797<script> var meta ... -
使用注解和反射构造ext的grid需要的列模型
2010-09-18 12:03 1712注解类: package xzd; import ... -
ExtJs Grid分页时序号自增的实现
2010-08-23 16:28 3081首先看到网上都是类似 http://www.blogjava. ... -
eclipse 中怎样来集成 JBOSS
2010-08-09 08:46 0eclipse 中怎样来集成 JBOSS -
ext2,3,和4 版本 只显示年月的日期插件
2010-08-03 20:23 15755Ext技术交流群:164648099 1:ext3版本 ... -
关于Extjs3.0中的TreeGrid (Ext.ux.maximgb.tg.EditorGridPanel)(转)
2010-08-01 21:38 4396转:(http://www.liyonghome.cn/ind ... -
ext grid 单元格提示 出现图片
2010-07-31 00:03 2703代码简单 只是记录一下 <html> ... -
ext tree相关知识
2010-07-30 23:53 2644ext tree 动态修改各个节点名称icon小图标 &qu ... -
ext 后台查数据库数据拼装tree数据
2010-07-26 22:21 2513来自:Extjs交流群(164648099) 说明: ... -
ext grid刷新后 滚动条位置不变
2010-07-19 21:11 3026Ext.override(Ext.grid.GridView, ...
相关推荐
学习EXTJS总结的例子,里面含有Grid以及ExtJs扩展的例子源码...
本总结例子将深入探讨EXTJS Grid的核心特性和使用方法,通过源代码分析,帮助开发者更好地理解和应用EXTJS Grid。 一、EXTJS Grid的基本结构 EXTJS Grid由多个部分组成,包括Store(数据存储)、Columns(列配置)...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
EXTJS是一种专为Rich Internet Applications (RIA)设计的前端JavaScript框架,它的主要定位与Prototype、jQuery等轻量级库截然不同。EXTJS注重客户端的复杂应用开发,提供了丰富的组件和功能,使得开发者能够构建出...
本人对extjs 各种开发的亲身总结,包括多种列表、树、以及很多扩展功能
里面的一些难点、要点都加了注释,还有一个file.txt文件是本人的小小总结,还没完整。我也是一个第一次接触EXT的初学者,只希望能与大家共享、学习,许多不到的地方希望大家能体谅,用myeclipse8.6运行项目,数据库...
ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...
本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是...
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...
ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端Web应用程序。这个压缩包包含了ExtJS的两个重要版本:2.2和3.2.1。这两个版本在Web开发领域都有着广泛的运用,它们各自拥有不同的特性和改进,对于理解...
ExtJS 是一个流行的JavaScript框架,用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件、数据绑定机制和强大的API,使开发者能够创建功能强大的、响应式的桌面和移动应用。7.6版本是ExtJS的一个重要更新,...
总结来说,ExtJS 4.2 Desktop 拓展是一个集成了多种桌面特性并优化了基础框架的解决方案,它提供了图标换行、窗口拖动、多级开始菜单等功能,使得开发复杂的Web应用变得更加简单和直观。通过下载提供的LinBDesk4.2...
ExtJS 4.1有自己的默认样式,但开发者可以根据需要自定义样式。 4. **JSON文件或XML文件**:可能包含数据源,用于数据绑定,展示在界面上。ExtJS的数据管理模型允许与后端服务进行交互,获取和更新数据。 5. **...
extjs各种组件的详细实现及各种扩展归纳总结,包括各种grid,tree,布局,表单,ajax,弹出框等
ExtJS是一个广泛使用的JavaScript库,专门用于构建富客户端应用程序。版本3.3是该库的一个稳定版本,提供了许多功能和组件,使得Web开发者能够创建功能丰富的、交互性强的用户界面。这个“ExtJS3.3中文API.CHM”文档...
ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库、数据管理功能以及强大的用户界面(UI)元素。在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列...
此外,ExtJS还支持动态皮肤切换,用户可以在运行时根据自己的喜好更改界面风格,这需要在代码中实现皮肤切换逻辑。 总的来说,ExtJS经典皮肤集合是开发高质量、美观的Web应用的重要资源,它使得开发者无需从零开始...
### MyEclipse中使用ExtJS出现缓慢、卡死、白屏问题及解决方法总结 在进行Web开发时,经常会遇到一些工具与框架不兼容或配置不当导致的问题,这些问题往往会影响到开发效率。本文将针对在MyEclipse环境中使用ExtJS...