Tutorial:Extending Ext2 Class (Chinese)

From Learn About the Ext JavaScript Library

Jump to: navigation, search
Summary: 本文为您介绍扩展EXT组件类所需的几个步骤。
Author: Jozef Sakalos(译者:Frank Chueng)
Published: January 2, 2008
Ext Version: 2.0+
Languages: EnglishKoreanChinese

Contents

[hide]

  • 1 实现的目的
  • 2 A note for those who were used to Ext 1.x
  • 3 文件的创建
    • 3.1 iconcombo.html
    • 3.2 iconcombo.js
    • 3.3 Ext.ux.IconCombo.js
    • 3.4 Ext.ux.IconCombo.css
  • 4 Let's go
  • 5 完成
    • 5.1 Ext.ux.IconCombo.js
    • 5.2 Ext.ux.IconCombo.css

实现的目的

预期将是这样的IconCombo

要创建的扩展是一个在文字前面能够显示图标的这么一个Ext.form.Combobox。将其中一个功能举例来说,就是要在一块选择里,国家名称连同国旗一并出现。

我们先给扩展起个名字,就叫Ext.ux.IconCombo

A note for those who were used to Ext 1.x

Extending Ext classes has not been difficult in Ext 1.x but it is even easier in Ext 2.x and the whole matter has not dramatically changed. You can even use the same procedure in Ext 2.x as you have used in Ext 1.x. However, every line of code you don't need to type contributes to code maintainability, readability and reduces number of possible bugs. Therefore, I'll show the easiest, simplest and shortest method here.

文件的创建

首要的步骤是准备好开发中将会使用的文件。需下列文件:

  • iconcombo.html: 新扩展将会使用的 html markup
  • iconcombo.js: 程序javascript代码
  • Ext.ux.IconCombo.js: 扩展的javascript文件
  • Ext.ux.IconCombo.css: 扩展样式表

iconcombo.html



<html>
<head><meta><link><link><script></script><script></script><script></script><script></script><script>Ext.onReady(iconcombo.init, iconcombo);</script><title>Ext.ux.IconCombo Tutorial</title>
</head>
<body>
<div><div>Icon combo:</div><div></div>
</div>
</body>
</html>

该文件来自教程Ext程序规划入门 的轻微修改。

iconcombo.js


Ext. = ;
iconcombo =   init:   icnCombo =  Ext..store:  Ext..fields: , , ,data: , , ,, , ,, , ,valueField: ,displayField: ,iconClsField: ,triggerAction: ,mode: ,width: ;icnCombo.;icnCombo.;;
; 

我们在这个文件中创建IconCombo,以便可以进行扩展和测试。

Ext.ux.IconCombo.js


Ext.;
Ext.. = config Ext....., config;
Ext.Ext.., Ext.., ; 

运行到这一步,实际这是一个没有对Ext.form.ComboBox新加任何东西的空扩展。我们正是需要这个完成好的空扩展,再继续下一步。

Ext.ux.IconCombo.css

 background-image: ;

 background-image: ;

 background-image: ;

路径可能根据你所在的国旗放置目录有所不同。国旗的资源可在here下载。

Let's go

So far so good!如果你浏览iconcombo.html应该会发现一个包含三个选项的标准combo,而德国的那个是选中的...是吧?不过还没有图标...

现在正是开始工作。在调用父类构建器之后加入下列行:

. = config. ||+ + +  + . + +  + . + + +
;

在这一步,我们将默认combox box的模版重写为iconClsField模版。

现在加入Ext.ux.IconCombo.css中的样式文件:

 background-repeat: ;background-position:  ;width: ;height: ;

不错!可以测试一下了,刷新的页面,还好吧!?嗯,列表展开时那些漂亮的图标就出来了。。还有。。我们不是要在关闭时也出现图标的吗?

在构建器中加入创建模版的过程:

.render:scope:, fn:  wrap = ..;..position:;..;. = Ext..wrap, tag: , style:;;

加入 事件render的侦听器,用于调整元素样式和创建国旗的div容器。如后按照下列方式进行扩展:


Ext.Ext.., Ext.., setIconCls:   rec = ..., ..;rec .. =  + rec..;,setValue: value Ext....., value;.;; 

新增 setIconCls函数并重写setValue函数。我们还是需要父类的setValue的方法来调用一下,接着再调用setIconCls的函数。最后,我们应该在文件Ext.ux.IconCombo.css加入下列代码:

 padding-left: ;

  top: ;left: ;

完成

最后再刷新一下,如果一切顺利,那这个就是新的Ext.ux.IconCombo扩展! 希望你能在此基础上扩展更多的组件!

谢谢Brian Moeskau提醒,使得能进一步精简Ext.ux.IconCombo 代码,才称得上最终版本。最终代码和CSS为:

Ext.ux.IconCombo.js


Ext.;
Ext.. = config Ext....., config;. = config. || + . +  + . + ;.render:scope:, fn:  wrap = ..;..position:;..;. = Ext..wrap, tag: , style:;;

Ext.Ext.., Ext.., setIconCls:   rec = ..., ..;rec .. =  + rec..;,setValue: value Ext....., value;.;; 

Ext.ux.IconCombo.css


 background-image../img/flags/us;

 background-image../img/flags/de;

 background-image../img/flags/fr;

 background-repeat: ;background-position:  ;width: ;height: ;

 padding-left: ;

  top: ;left: ;

 background-repeat: ;background-position:  ;padding-left: ;
  • Ext Programmer's API Documentation
  • Ext User Forums
Retrieved from "http://extjs.com/learn/Tutorial:Extending_Ext2_Class_%28Chinese%29"

转载于:https://www.cnblogs.com/meetrice/archive/2008/05/23/1206193.html

扩展Ext2类 Extending Ext2 Class相关推荐

  1. css扩展语言_如何决定是否应该链接或扩展CSS类

    css扩展语言 by Sarah Dayan 通过莎拉·达扬 如何决定是否应该链接或扩展CSS类 (How to decide whether you should chain or extend C ...

  2. 如何创建线程?如何创建扩展Thread类?

    大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: · 实现Runnable 接口. · 可以继承Thread类. 前一篇文章介绍了下面介绍了实现Runnable 接口 ...

  3. 新型人工突触可用于高度扩展的类脑计算

    来源:科技日报 作者:张梦然 科技日报北京12月28日电 (记者张梦然)据最新一期美国化学会期刊<应用材料与界面>报道,新加坡科技与设计大学(SUTD)研究团队开发出一种基于二维(2D)材 ...

  4. 高度可扩展的类脑神经拟态硬件,完成了字母识别和人脸识别

    基于单晶体管的神经元和突触可大幅降低硬件成本,加速神经拟态硬件的商业化.研究人员使用标准硅 CMOS 工艺制造的单晶体管神经元和突触.它们共同集成在同一个8英寸晶圆片上. 韩国科学技术院(KAIST) ...

  5. [Google Guava] 2.4-集合扩展工具类

    原文链接 译文链接 译者:沈义扬,校对:丁一 简介 有时候你需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 ...

  6. 29.怎样扩展现有类功能?

    实际项目开发中,我们经常会需要对系统的UI控件等进行封装,以达到统一修改.重复代码少.复用性高等效果.OC中,我们一般通过Category来给现有类添加方法:而在Swift中,我们使用Extensio ...

  7. swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类

    扩展第三方类 细心的朋友可能会发现,我们前面计算主角的大小用的总是同一方向第一帧纹理的大小,如果纹理大小有出入的话,会产生较大的偏差,最好的方法是取当前动画帧纹理的大小.不过这有些难度,所以我们退之求 ...

  8. php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解

    本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为M ...

  9. ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号

    写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服 ...

最新文章

  1. R语言问题解决:Error: Discrete value supplied to continuous scale
  2. SAP QM 物料主数据QM视图里字段MARC-INSMK的更新
  3. 服务器如何运行java文件_在linux服务器上运行java文件
  4. opengl载入多个3ds模型失败记
  5. 《计算机科学概论》—第3章3.2节数字数据表示法
  6. .Net 程序员走向高端必读书单汇总
  7. 2018数学建模A题的简单指导
  8. 全绿色版影视电影小程序源码-提供苹果CMS接口
  9. Extension Method - c#3.0
  10. 服务器里的文件链接地址怎么写,服务器里的文件链接地址怎么写
  11. 病毒或木马修改注册表,导执可执行文件无法执行的处理办法
  12. 如何使用Enigma Recovery检查设备未设置为加密备份
  13. 这是你所了解的FaaS 么?——无服务计算的10个思考
  14. ACM复习(53)17229 Lry,你除了2还是2
  15. 高效记忆/形象记忆(09)英语单词记忆-拼音法
  16. ARM开发初级-Windows环境下的STM32开发环境搭建(包含missing compiler version 5的解决方法)-学习笔记02
  17. 口布杯花的60种叠法_餐巾折花艺术3餐巾折杯花.ppt
  18. minigui学习笔记五
  19. 基于微信小程序的教学辅导平台设计与实现
  20. windows10删除自带输入法

热门文章

  1. linux nice线程,linux nice 线程
  2. c#将字符串转换为数组_pandas入门: 时间字符串转换为年月日
  3. 计算机绘画教案风车,中班美术教案《风车》
  4. python上机实验报告读取文件_Python程序设计实验报告八 : 文件
  5. quartus编译错误不支持芯片_硒鼓粉盒芯片不识别、耗材佘量错误、打印机亮红灯问题解决方法...
  6. Android 画虚线边框
  7. 开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2
  8. 利用机器学习进行DNS隐蔽通道检测——数据收集,利用iodine进行DNS隐蔽通道样本收集...
  9. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
  10. 倒排列表压缩算法汇总——分区Elias-Fano编码貌似是最牛叉的啊!