最近在看Ext的源码,发现Ext的基础控件都是使用继承来实现的,忽然觉得自己的写法也该改改了,不然js代码多起来了,就很难管理了。
不用继承的写法:
// 设置颜色的下拉列表
var store_color = new Ext.data.JsonStore({
url : "whInput!getColorList.action",
method : "post",
root : "ColorList",
fields : ["colorId", "colorName"],
autoLoad : true
});
var combo_color = new Ext.form.ComboBox({
id : "combo_color",
name:'colorId',
hiddenName:'colorId',
store : store_color,
valueField : "colorId",
displayField : "colorName",
forceSelection : true,
typeAhead : true,
triggerAction : 'all',
selectOnFocus : true,
fieldLabel : "颜色",
emptyText: '请选择',
anchor:'95%',
allowBlank : false
}); |
这样看起来,如果要写多个Combo,特别是查询,就会觉得很冗余了。因为其中有很多属性是几乎一样的。我开始感叹Java的强大,面向对象的伟大。所以我也决定将自己的前台代码改头换面!
Ext的继承是这样写的:var combo = Ext.extend(Ext.Window,{});
Ext.extend表示继承,第一个参数是指父类,也就是你要继承的类。后面是一个对象{},表示你要覆盖的父类的属性或者定义自己的属性等。例如:
Ext.ns('Leangle');//定义命名空间
Ext.ns('Leangle.form');//同上
//继承自Ext.form.ComboBox
Leangle.form.BaseComboBox = Ext.extend(Ext.form.ComboBox,{
forceSelection : true,
typeAhead : true,
triggerAction : 'all',
selectOnFocus : true,
width:70,
emptyText: '请选择',
mode:'local' //本地过滤
});
//向Ext注册此控件,可以通过xtype:'basecombo'来new 一个这个控件
Ext.reg('basecombo',Leangle.form.BaseComboBox);
|
这样的话,我以后所定义的ComboBox就可以直接继承我的Leangle.form.BaseComboBox这个类,然后在这个ComboBox里面就可以少定义BaseComboBox已经定义的属性了。如下:
Leangle.form.combo.ColorComboBox = Ext.extend(Leangle.form.BaseComboBox,{
id : "combo_color",
name:'colorId',
hiddenName:'colorId',
valueField : "colorId",
displayField : "colorName",
fieldLabel : "颜色",
store:new Ext.data.JsonStore({
id:'store_color',
url : "whInput!getColorList.action",
method : "post",
root : "ColorList",
fields : ["colorId", "colorName"],
autoLoad : true
})
}); |
这样代码就简洁很多了,管理起来也相对容易了。这是Ext的继承,下次我会再讲解一下Ext的插件。
分享到:
相关推荐
EXT控件是EXT框架的基础,它们提供了丰富的UI元素,如按钮、表格、面板、窗口等。通过EXT自定义控件扩展,开发者可以进一步拓展这些基础控件的功能,或者创建全新的控件类型,以满足项目中的特殊需求。以下是一些...
1. **类定义**:创建一个新的DateField子类,可能命名为`MonthPicker`,继承自Ext.form.field.DateField。 2. **配置项**:定义新的配置选项,如`allowOnlyMonthYear`,用于开启只选择年月模式。 3. **模板修改**:...
ExtJS库以其精美、专业的界面设计而闻名,Ext.NET控件库继承了这一特点。它提供了各种样式和主题,可以轻松定制控件外观,包括按钮、面板、窗口、菜单、工具栏等,满足不同项目需求。 4. **组件体系**: Ext.NET...
EXT时间控件的实现基于Ext.form.DateTimeField类,这个类继承自Ext.form.DateField,增加了对时间选择的支持。使用DateTimeField,你可以指定日期和时间的格式,例如"Y年M月d日 H:i:s",其中Y代表四位数的年份,M...
### Ext表格控件和树控件 #### 表格控件 ##### 1.1 基本表格 `GridPanel` 在Ext JS框架中,`GridPanel` 是一种用于展示和管理表格数据的重要组件。它提供了丰富的功能,例如排序、缓存、拖动列、隐藏列、自动显示...
以下将详细讲解两种常见的自定义EXT控件的方法: 1. **重载 `initComponent` 函数** `initComponent` 是EXT JS组件生命周期中的一个重要函数,它在组件实例化时被调用,用于完成组件的基本配置和初始化。当需要...
在实际开发中,`ext_extends`可能会包含多个示例,展示了不同类型的继承和重写场景,比如控件的定制、事件处理、数据绑定等。这些实例可以帮助开发者深入理解EXT JS的继承机制,并熟练运用到实际项目中,提高代码的...
综上所述,EXT JS中的日期控件扩展是解决日期时间选择问题的关键,开发者需要理解EXT JS的组件体系,熟练运用继承和扩展机制,以创建或定制满足特定需求的DateTimeField控件。这不仅提高了用户体验,也丰富了EXT JS...
"Ext扩展控件,可以用图片显示百分之多少"的标题揭示了一个特定的EXT控件功能,它允许将表格(grid)中的百分比数据以图形化的方式——进度条图片——进行呈现,这样不仅美观,还能更有效地传达信息。 EXT Grid是一...
如果默认的DateTimeField不能满足所有需求,开发者可以通过EXT的MVC模式或组件继承机制,创建自定义的时间控件,增加新的功能或调整样式。 7. **无障碍性(Accessibility)**: 在设计EXT应用时,应考虑无障碍性...
我们首先需要创建一个新的类,继承自EXT.form.field.ComboBox,并在其基础上添加我们所需的新功能。这通常包括定义新的配置选项、重写默认的渲染方法以及添加事件处理程序。 1. **配置选项**: - `iconField`:...
教你创建Ext UI控件 事件的处理 Ext中的继承 Ext的类设计 Ajax通讯 JSON处理方法 函数的原型扩展 组件的使用: Tab标签页 Ext 1.x中的布局 Grid组件初学 Grid的数据分页 Ext菜单器件 表单组件初学 表单组件初学...
1. **组件定义**:首先,开发者会定义一个新的类,继承自Ext的基础组件类,例如Ext.Container或Ext.Panel,并重写相关方法以实现月份选择的功能。 2. **模板(Template)**:为了显示月份列表,可能需要定义一个...
Ext JS Calendar 日历是一款强大的日历控件,适用于构建具有丰富功能的日程管理应用。它提供了多种视图,包括月视图、日视图和周视图,允许用户灵活查看和管理时间安排。本文将深入探讨Ext JS Calendar的核心组件、...
6. **自定义组件**:EXT.NET允许开发者创建自定义的JavaScript组件,这可以通过继承EXT JS的基类并扩展其功能来实现。你可以将自定义组件封装成.NET服务器控件,以便在ASP.NET项目中重复使用。 7. **性能优化**:...
Ⅰ、继承现有控件,对其控件的功能进行拓展。 Ⅱ、将现有控件进行组合,实现功能更加强大控件。 Ⅲ、重写View实现全新的控件 本文重点讨论继承现有控件进行拓展实现自定义控件。这是一个非常重要的自定义...
要创建这样一个控件,我们首先需要引入ExtJs4.1库,并定义一个新的组件类,继承自`Ext.picker.Date`。然后,我们需要覆盖或扩展默认配置,添加对时间选择的支持。例如,我们可以增加一个时间选择面板(`Ext.picker....
总结来说,EXTJS扩展年度控件是一项涉及到组件继承、模板修改、事件处理和UI设计的任务。通过这样的定制,我们可以为用户提供更符合业务需求的时间选择体验,同时也展示了EXTJS强大的可扩展性和灵活性。在实践中,...
在使用Ext JS框架开发Web应用时,经常会涉及到日期选择控件的需求,开发者可能会需要在选择日期的同时显示该日期对应的星期,甚至是它在一年中所属的第几周。但标准的Ext JS 4并没有直接提供一个配置选项来满足这一...
1. **基础对象**:EXT中的所有对象都继承自Ext.Base,这个基类定义了EXT对象的基本行为,如事件处理、属性管理和扩展机制等。 2. **类系统**:EXT使用面向对象的编程方式,"ext-base.js"中包含了类的创建、继承和...