Component
在Ext中对常用的UI组件都进行了一系列的封装,而各个组件都具有一些相同的属性或者事件,这些相同的属性被封装起来成为Component类,每个UI组件都继承Component类,可见Ext在面向对象方面有很好的实现。看一下Component中的定义:
//构造方法,传入config参数
Ext.Component = function(config){
config = config || {};
if(config.initialConfig){...};
this.initialConfig = config;
Ext.apply(this, config);
this.addEvents(...);
this.getId();
Ext.ComponentMgr.register(this);
Ext.Component.superclass.constructor.call(this);
if(this.baseAction){
this.baseAction.addComponent(this);
}
//初始化组件
this.initComponent();
if(this.plugins){....}
//初始化状态
if(this.stateful !== false){
this.initState(config);
}
if(this.applyTo){....}
};
// private
Ext.Component.AUTO_ID = 1000;
//继承Observable,实现事件机制
Ext.extend(Ext.Component, Ext.util.Observable, {
blur : function(){....},
focus:function(){....},
enable: function(){....},
.......
});
通过继承Observable,所有的UI Component都实现了事件机制,在使用的过程中可以方便的注册我们所需要的事件。
Button
对传统的Button,Submit,Reset进行封装,在放置Ext文件的source → widgets 目录下找到 Button.js 源文件,我们可以看到
Ext.Button = Ext.extend(Ext.Component, {.....});
可见Button是继承于Component类, Button可以直接使用父类中定义的构造方法和事件机制。
看一个简单的例子:
<script type="text/javascript">
Ext.onReady(function() {
new Ext.Button({
renderTo:Ext.getBody(),
text:"确定"
});
});
</script>
构造方法中涉及的参数:
- renderTo:将当前对象所生成的HTML对象放到指定的对象中,这个例子中就是把new 出来的Button对象放到页面的Body中
- Ext.getBody:Ext中封装Dom Element的Body对象,在document.body的基础上进行的封装,document.body = Ext.getBody.dom
- text:按钮上显示的文字
看一个漂亮的Button就出来了:
,和通常HTML中的Button明显不一样吧,EXT不但封装了UI Component中的属性、方法、事件,连显示的样式一样做了很好的封装,还有一点要啰嗦的,就是new 一个 Component 出来一定最后是以HTML对象表现出来的,这样浏览器才可以进行解析,也就是不管怎么花哨怎么变,最终的结果还得回到根儿上来。
来看Button中的一些常用的构造参数、属性、方法和事件:
再看一个例子:
<script type="text/javascript">
Ext.onReady(function() {
var _button = new Ext.Button({
renderTo:Ext.getBody(),
text:"确定",
minWidth:100,
handler:function() {
alert("this Button be clicked!");
}
});
alert(_button.text);
_button.setText("Hello World");
alert(_button.text);
});
</script>
构造参数
- handler:指定一个函数句柄,在默认事件触发是调用,这里的默认事件是click
- listeners:在对象初始化之前,就将一系列事件定义的手段,在进行组件化编程时,非常有用
- 简单应用只有一个事件的时候只需要定义handler就可以了,如果响应的事件比较多需要定义listeners
- listeners的使用:
-
<script type="text/javascript">
Ext.onReady(function() {
var _button = new Ext.Button({
renderTo:Ext.getBody(),
text:"确定",
minWidth:100,
listeners:{
"click":function() {
alert("fired listeners property");
}
}
});
});
</script>
- 另外一种订阅事件的方法 on ,在上一篇 事件 部分中已经介绍过,实际调用的是addListener()方法
-
Ext.onReady(function() {
var _button = new Ext.Button({
renderTo:Ext.getBody(),
text:"确定"
});
_button.on("click", function() {
alert("fired add listener event");
});
属性
- minWidth:按钮的最小宽度,注意:这里是没有单位的,不能在数值后面加上px、em等单位
- text:和构造参数中的text不同,属性text是获得当前按钮上的名称,构造参数text是设置Button显示的文字,而且该属性是一个Read Only的属性,我们不能直接修改这个属性,像button.text = "test",如果要更改text的值需要调用它的setText()方法。
- 那么如何知道一个Component是ReadOnly的呢?这就从它的API里面找了,这个版本的API中没有写出来text属性,估计是认为它太简单了,换一个属性看一下
方法
事件
好了,Button先到这里,当然上面所介绍的是最基础的部分,后面遇到问题再回来补充。
Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
Ext学习笔记02 - 构造方法,类继承,类实例方法重写
Ext学习笔记03 - 事件
Ext学习笔记04 - UI组件 - Component, Button
Ext学习笔记05 - UI组件 - Panel,TextField
Ext学习笔记06 - Window
Ext学习笔记07 - Window及Window中的布局
Ext学习笔记08 - 日期控件
Ext学习笔记09 - ComboBox
- 大小: 806 Bytes
- 大小: 4.5 KB
分享到:
相关推荐
ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0
学习EXT-D3和Pivot-D3,开发者需要掌握EXT JS的基本知识,理解其组件体系和事件模型;同时,还需要熟悉D3.js的数据操作和绘图API。对于Pivot-D3,还需了解数据透视表的概念和操作方式。通过熟练掌握这些技术,开发者...
bcprov-ext-jdk16-1.45.jar资源包 ,在进行JAVA的ECC椭圆算法调用时,需要用到的jar包
ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题
ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1
openwrt软路由
3. 在项目的`public`目录下新建`js`文件夹,并将`ext-2.1`目录下的`adapter`、`resources`以及`ext-all.js`、`ext-core.js`文件复制到`js`文件夹下。 **步骤二:修改HTML宿主页面和模块配置文件** 1. 修改`...
这篇学习笔记将深入探讨Gwt-ext的核心概念、功能以及如何在实际项目中应用。 GWT是由Google开发的一个开源框架,它允许开发者使用Java语言来编写前端Web应用。GWT编译器会将Java代码转换为优化过的JavaScript,以...
8. **bootstrap.js**:Ext.js的库引导文件,可以根据参数自动选择加载`ext-all.js`或`ext-all-debug.js`。 9. **ext-all.js**:Ext.js的核心库,用于生产环境。 10. **ext-all-debug.js**:调试版本的核心库,包含...
在压缩包的文件名称列表中,我们看到了"ext-1.0.1.rar",这可能是EXT JS的一个早期版本,版本号为1.0.1。"ucren-2.8.2%E5%9B%BD%E4%BA%BA%E5%BC%80%E5%8F%910.rar"看起来像是ucren的2.8.2版本,"国%人%开发0"这部分...
### Gwt-ext学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....
- 需要引用样式表文件`ext-all.css`,以确保EXT组件的正常显示。 - 需要先加载`ext-base.js`文件,再加载`ext-all.js`文件,这是因为前者包含了后者运行所需的基础功能。 - 在某些情况下,还需要设置页面的字符集...
ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,...
ext-base ext-4.1.1a-commercial
spketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-...
官方版本,亲测可用
ext4magic-0.3.2-3.10.x86_64.rpm
- **ext-all.js**:这是Ext.js的核心库,包含了所有组件和功能,适合生产环境使用。 - **ext-all-debug.js**:调试版本,包含了额外的错误检查和警告,用于开发和调试过程。 当我们需要在页面中使用Ext.js时,例如...