无废话ExtJs 入门教程二十一[继承:Extend]
2012-06-29 20:05
471 查看
extjs技术交流,欢迎加群(521711109)
在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性。而这些属性可以通过“继承”定义在我们定义的新组件中,从而达到重用的目地。
1.代码如下:
2.效果如下:
转载请注明出处:http://www.cnblogs.com/iamlilinfeng
在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性。而这些属性可以通过“继承”定义在我们定义的新组件中,从而达到重用的目地。
1.代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--ExtJs框架开始--> <script type="text/javascript" src="/Ext/adapter/ext/ext-base-debug.js"></script> <script type="text/javascript" src="/Ext/ext-all-debug.js"></script> <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" /> <!--ExtJs框架结束--> <script type="text/javascript"> Ext.onReady(function () { //----------------继承前开始---------------// var Panel1 = new Ext.Panel({ title: '标题', width: 500, height: 100, html: '好好学习' }); var Panel2 = new Ext.Panel({ title: '标题', width: 500, height: 100, html: '天天向上' }); //----------------继承前结束---------------// //----------------继承后开始---------------// var MyPanel = Ext.extend(Ext.Panel, { title: '标题', width: 500, height: 100 }); var MyPanel1 = new MyPanel({ html: '好好学习' }); var MyPanel2 = new MyPanel({ html: '天天向上' }); //----------------继承后结束---------------// //定义新的类FormPanel,并且把变化的属性暴露出来以便以后继承 var MyFormPanel = Ext.extend(Ext.form.FormPanel, { title: '属性外露', width: 500, labelWidth: 80, initComponent: function () { this.items = [{ xtype: 'textfield', fieldLabel: '姓名', id: this.usernameid,//变化的部份 name: 'username', }]; this.buttons = [{ text: '确 定', handler: this.submit,//变化的部份 scope: this }, { text: '取 消', handler: this.cancel,//变化的部份 scope: this }]; MyFormPanel.superclass.initComponent.call(this, arguments); //调用父类的initComponent } }); //创建测试对象1 var testForm1= new MyFormPanel({ usernameid:'username', submit: function () { alert(Ext.getCmp('username').getValue()); }, cancel: function () { testForm1.getForm().reset(); } }); //创建测试对象2 var testForm2=new MyFormPanel({ title: '覆盖属性', usernameid:'usernameid', submit: function () { alert(this.usernameid); }, cancel: function () { testForm2.getForm().reset(); } }); //创建窗体 var win = new Ext.Window({ title: '窗口', id: 'window', width: 500, height: 620, resizable: true, closable: true, maximizable: true, minimizable: true, items: [Panel1, Panel2, MyPanel1, MyPanel2, testForm1,testForm2] }); win.show(); }); </script> </head> <body> <!-- 说明: (1)var MyPanel = Ext.extend(Ext.Panel, { title: '标题', width: 500, height: 100 }); Ext.extend 用来继承已有的类 这里给 title,width,height加上了默认值 第12行至37行,简单介绍了组件的继承,如:平时我们在用MessageBox.show()时,一般会有4种情况,“成功”,“失败”,“出错”,“确认”。。 我们通过简单的继承,就可以把这4类文本框封装的很好,每次使用时new我们的新类即可。 (2)第38--82行,我做了个组件套用子组件的例子,给组件附加子组件须在 initComponent: function () {} 初始化组件时加入, 并且在完成后,还要显示的调用 MyFormPanel.superclass.initComponent.call(this, arguments); //调用父类的initComponent 我们在开发中,常会用到 GridPanel,会定义分页组件,按钮等,经过这个实例,我们可以在把原有的 GridPanel再包一层,以保证软件中的“单一原则”。 其中变化的部分我们可以通过定义新属性把他外露出来。如上例所示。 --> </body> </html>
2.效果如下:
转载请注明出处:http://www.cnblogs.com/iamlilinfeng
相关文章推荐
- ExtJs 入门教程二十一[继承:Extend]
- 无废话ExtJs 入门教程五[文本框:TextField]
- 无废话ExtJs 入门教程一[学习方法]
- 无废话ExtJs 入门教程六[按钮:Button]
- 无废话ExtJs 入门教程二[Hello World]
- 无废话ExtJs 入门教程十四[文本编辑器:Editor]
- ExtJs 入门教程二十一[单选框 :Radio]
- 无废话ExtJs 入门教程四[表单:FormPanel]
- 无废话ExtJs 入门教程六[按钮:Button]
- 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
- 无废话ExtJs 入门教程
- 无废话ExtJs 入门教程二[Hello World]
- 无废话ExtJs 入门教程五[文本框:TextField]
- 无废话ExtJs 入门教程十七[列表:GridPanel]
- 无废话ExtJs 入门教程八[脚本调试Firefox:firebug]
- 无废话ExtJs 入门教程三[窗体:Window组件]
- 无废话ExtJs 入门教程六[按钮:Button]
- 无废话ExtJs 入门教程十三[上传图片:File]
- 无废话ExtJs 入门教程十九[API的使用]
- 无废话ExtJs 入门教程二十三[员工管理实例:Demo]