`
solon.jar
  • 浏览: 44747 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Ext 控件继承

    博客分类:
  • Ext
阅读更多

 最近在看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控件是EXT框架的基础,它们提供了丰富的UI元素,如按钮、表格、面板、窗口等。通过EXT自定义控件扩展,开发者可以进一步拓展这些基础控件的功能,或者创建全新的控件类型,以满足项目中的特殊需求。以下是一些...

    Ext DateField控件 - 只选择年月

    1. **类定义**:创建一个新的DateField子类,可能命名为`MonthPicker`,继承自Ext.form.field.DateField。 2. **配置项**:定义新的配置选项,如`allowOnlyMonthYear`,用于开启只选择年月模式。 3. **模板修改**:...

    ext.net 控件

    ExtJS库以其精美、专业的界面设计而闻名,Ext.NET控件库继承了这一特点。它提供了各种样式和主题,可以轻松定制控件外观,包括按钮、面板、窗口、菜单、工具栏等,满足不同项目需求。 4. **组件体系**: Ext.NET...

    ext 日期时间控件

    EXT时间控件的实现基于Ext.form.DateTimeField类,这个类继承自Ext.form.DateField,增加了对时间选择的支持。使用DateTimeField,你可以指定日期和时间的格式,例如"Y年M月d日 H:i:s",其中Y代表四位数的年份,M...

    Ext 实现自定义控件

    以下将详细讲解两种常见的自定义EXT控件的方法: 1. **重载 `initComponent` 函数** `initComponent` 是EXT JS组件生命周期中的一个重要函数,它在组件实例化时被调用,用于完成组件的基本配置和初始化。当需要...

    ext继承重写

    在实际开发中,`ext_extends`可能会包含多个示例,展示了不同类型的继承和重写场景,比如控件的定制、事件处理、数据绑定等。这些实例可以帮助开发者深入理解EXT JS的继承机制,并熟练运用到实际项目中,提高代码的...

    ext日期控件时分秒

    综上所述,EXT JS中的日期控件扩展是解决日期时间选择问题的关键,开发者需要理解EXT JS的组件体系,熟练运用继承和扩展机制,以创建或定制满足特定需求的DateTimeField控件。这不仅提高了用户体验,也丰富了EXT JS...

    ext的扩展控件之IconComboBox

    我们首先需要创建一个新的类,继承自EXT.form.field.ComboBox,并在其基础上添加我们所需的新功能。这通常包括定义新的配置选项、重写默认的渲染方法以及添加事件处理程序。 1. **配置选项**: - `iconField`:...

    Ext扩展控件,可以用图片显示百分之多少

    "Ext扩展控件,可以用图片显示百分之多少"的标题揭示了一个特定的EXT控件功能,它允许将表格(grid)中的百分比数据以图形化的方式——进度条图片——进行呈现,这样不仅美观,还能更有效地传达信息。 EXT Grid是一...

    EXT 时间控件 3.0以上使用

    如果默认的DateTimeField不能满足所有需求,开发者可以通过EXT的MVC模式或组件继承机制,创建自定义的时间控件,增加新的功能或调整样式。 7. **无障碍性(Accessibility)**: 在设计EXT应用时,应考虑无障碍性...

    Ext官方中文教程(可打包下载)

    教你创建Ext UI控件 事件的处理 Ext中的继承 Ext的类设计 Ajax通讯 JSON处理方法 函数的原型扩展 组件的使用: Tab标签页 Ext 1.x中的布局 Grid组件初学 Grid的数据分页 Ext菜单器件 表单组件初学 表单组件初学...

    【Ext2.0】只有月份的日期控件

    1. **组件定义**:首先,开发者会定义一个新的类,继承自Ext的基础组件类,例如Ext.Container或Ext.Panel,并重写相关方法以实现月份选择的功能。 2. **模板(Template)**:为了显示月份列表,可能需要定义一个...

    ext 结合 asp.net 实例

    6. **自定义组件**:EXT.NET允许开发者创建自定义的JavaScript组件,这可以通过继承EXT JS的基类并扩展其功能来实现。你可以将自定义组件封装成.NET服务器控件,以便在ASP.NET项目中重复使用。 7. **性能优化**:...

    Android继承现有控件拓展实现自定义控件textView

     Ⅰ、继承现有控件,对其控件的功能进行拓展。  Ⅱ、将现有控件进行组合,实现功能更加强大控件。  Ⅲ、重写View实现全新的控件  本文重点讨论继承现有控件进行拓展实现自定义控件。这是一个非常重要的自定义...

    ExtJs4.1带时间选择的日期控件

    要创建这样一个控件,我们首先需要引入ExtJs4.1库,并定义一个新的组件类,继承自`Ext.picker.Date`。然后,我们需要覆盖或扩展默认配置,添加对时间选择的支持。例如,我们可以增加一个时间选择面板(`Ext.picker....

    ext js calendar 日历

    Ext JS Calendar 日历是一款强大的日历控件,适用于构建具有丰富功能的日程管理应用。它提供了多种视图,包括月视图、日视图和周视图,允许用户灵活查看和管理时间安排。本文将深入探讨Ext JS Calendar的核心组件、...

    extjs扩展年度控件,EXTJS里的时间控件的年度重写

    总结来说,EXTJS扩展年度控件是一项涉及到组件继承、模板修改、事件处理和UI设计的任务。通过这样的定制,我们可以为用户提供更符合业务需求的时间选择体验,同时也展示了EXTJS强大的可扩展性和灵活性。在实践中,...

    ext-base.js

    1. **基础对象**:EXT中的所有对象都继承自Ext.Base,这个基类定义了EXT对象的基本行为,如事件处理、属性管理和扩展机制等。 2. **类系统**:EXT使用面向对象的编程方式,"ext-base.js"中包含了类的创建、继承和...

    EXT.form组件

    9. `numberfield`:`Ext.form.NumberField`继承自`Ext.form.TextField`,专用于处理数字输入。它提供了额外的配置项,如允许小数、负数,设定最大最小值和精度,以及自定义小数分隔符。 10. `radio`:`Ext.form....

    extjs3.2、3.3 时间控件 日期控件扩展

    - 日期控件允许用户选择日期,通常使用`Ext.form.DateField`类创建。 - 日期控件支持多种日期格式,如'YYYY-MM-DD'、'MM/DD/YYYY'等,可通过`format`属性设置。 - 用户可以设置日期选择范围,如最小日期和最大...

Global site tag (gtag.js) - Google Analytics