`
solon.jar
  • 浏览: 44546 次
  • 性别: 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 UI控件 事件的处理 Ext中的继承 Ext的类设计 Ajax通讯 JSON处理方法 函数的原型扩展 组件的使用: Tab标签页 Ext 1.x中的布局 Grid组件初学 Grid的数据分页 Ext菜单器件 表单组件初学 表单组件初学...

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

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

    extDatePicker

    继承 Ext日历控件 支持全选 反选 清除等功能

    Ext+JS高级程序设计.rar

    9.1 利用Ext.extend实现继承 254 9.2 与Ext扩展相关的预备知识 256 9.2.1 定义命名空间 256 9.2.2 重写构造函数 257 9.2.3 继承组件的一些准备 257 9.2.4 常用的辅助函数 258 9.2.5 使用xtype 258 9.3 实现一个功能...

    深入浅出ExtJS第2版

    深入浅出ExtJS第2版+源码..1 下载EXT发布包 1 1.2 如何查看EXT自带的API和示例 1 1.3 为什么有些示例必须放在服务器上 才能看到效果 2 ...4.3.1 控件继承图 77 4.3.2 表单控件 78 4.3.3 基本输入控

    精通JS脚本之ExtJS框架.part1.rar

    14.1 利用Ext.extend实现继承 14.2 与ExtJS扩展相关的预备知识 14.2.1 定义命名空间 14.2.2 使用xtype 14.3 用户扩展和插件 14.3.1 编写自定义用户扩展 14.3.2 常用插件UploadDialog 14.3.3 常用插件...

    ExtJS viewModel继承

    ExtJS6 viewModel继承 viewModel各级控件继承演示,动态改变viewModel 详见文章解释 https://blog.csdn.net/ZYD45/article/details/87867454

    Android自定义控件EditText使用详解

    3. 继承控件 代码已上传到 github 以后的自定义控件就都放这个仓库 需求 这里由于项目的需要实现一个自定义EditText,主要实现的为两点,一个是工具图标toolIcon,例如点击清除EditText内容。一个为EditText左边的...

    Android控件之TextView的分析探究

     TextView类继承自View类,TextView控件的功能是向用户显示文本的内容,但不允许编辑,而其子类EditView允许用户进行编辑。  以下为TextView常用属性及对应方法说明 您可能感兴趣的文章:Android控件系列之...

    ExtAspNet_v2.3.2_dll

    -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 ...

    精通JS脚本之ExtJS框架.part2.rar

    14.1 利用Ext.extend实现继承 14.2 与ExtJS扩展相关的预备知识 14.2.1 定义命名空间 14.2.2 使用xtype 14.3 用户扩展和插件 14.3.1 编写自定义用户扩展 14.3.2 常用插件UploadDialog 14.3.3 常用插件...

    C#自定义控件实现TextBox禁止粘贴的方法

    新建->项目->Windows控件库: 新建一个类,继承自TextBox类,具体源代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using ...

    Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码

    TreePanel继承自Panel,在ExtJS中使用树控件含有丰富的属性和方法实现复杂的功能。其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 ...

    信息管理系统开发MVC框架源码

    ASP.NET AJAX的Web控件,包含有丰富的Ajax运用所提供的界面已涉及界面大部分功能实现。 3、业务逻辑层使用模板方法+泛型,只需继承SessionHelper或MDSessionHelper , TDetail>即可。 三、功能介绍 1、机构部门...

    Android RichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)

    RTMovementMethod: 继承自Android原生的LinkMovementMethod,重写onTouchEvent方法,优化了ClickSpan(点击响应的文字区域)的点击响应。  Resolver:一个接口,我们需要实现一种支持富文本类型

    Extjs学习笔记之二 初识Extjs之Form

    Extjs中的表单组件是Ext.form.BasicForm,不过最简单最常用的是Ext.form.FormPanel控件,它继承自Panel,具有一定的界面显示控制能力,它其中包含着一个BasicForm对象,用来执行向服务器提交,加载等动作。...

    Extjs中常用表单介绍与应用

    目标: 知道表单面板如何创建 了解表单面板中xtype的类型的应用 知道表单面板如何验证,绑定,取值 综合应用表单面板(玩转它) 内容: 首先我们要理解的是FormPanel也是继承panel组件的。所以它有着panel的属性 要...

    Android实现数字跳动效果的TextView方法示例

    本文介绍的是Android如何实现数字跳动效果的TextView,主要运用了DancingNumberView,DancingNumberView是一个用于跳动显示文本中数字的控件,继承自TextView,这种控件一般用于显示金额等对用户较为敏感的数字,让...

    extjs 学习笔记 四 带分页的grid

    在extjs中,类Ext.PagingToolbar封装了关于分页的操作,该类从Toolbar继承而来,单从名字上看,我们也猜得出这是一个能够处理分页的工具栏。好吧,那我们就来看看如何构造这样一个工具栏吧。PagingToolbar类的构造...

Global site tag (gtag.js) - Google Analytics