ExtJS——继承

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>

    <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
    <script type="text/javascript" src="ext-all-debug.js"></script>
    <script type="text/javascript" src="ext-all.js"></script>
    <script type="text/javascript" src="bootstrap.js"></script>
</head>
<body>
<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: '天天向上'
            });
 //Ext.extend 用来继承已有的类 这里给 title,width,height加上了默认值
 var MyPanel = Ext.extend(Ext.Panel,{
    title:'继承Panel',
    width:500,
    height:100
 });
 var MyPanel1 = new MyPanel({
    html:'好好学习'
 });
 var MyPanel2 = new MyPanel({
        html: '天天向上'
 });
 //将变化的部分我们可以通过定义新属性把他外露出来。
 var MyFormPanel = Ext.extend(Ext.form.FormPanel,{
    title:'属性外露items的id由usernameid属性的值给出',
    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(){
        Ext.MessageBox.alert('提示',Ext.getCmp('username').getValue());
    },
    cancel:function(){
        testform1.getForm().reset();
    }
 });
 //创建测试对象2
 var testform2 = new MyFormPanel({
    title:'覆盖父级的title属性',
    usernameid:'usernameid属性值',
    submit:function(){
        Ext.MessageBox.alert('提示',this.usernameid+",与上一个组件实现submit不同");
    },
    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>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值