• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Extjs4 类的定义和扩展实例

    发布者: 晋3555 | 发布时间: 2025-8-13 16:35| 查看数: 89| 评论数: 0|帖子模式

    一般定义方式,注意方法和函数的添加方式不同。(添加函数只能用override方式添加不知为什么,有知道的,请搞之。)
    定义一个类,并给他一个方法

    Ext.define('Simple.Class',{
    welcome:function(){
    alert('Welcome to the app');
    }
    });

    使用Ext.override方法对已有类进行重载并添加函数

    Ext.override(Simle.Class,{
    goodBye:function(){
    alert('Goodbye');
    },
    funAll:function(){
    this.welcome();
    this.goodBye();
    }
    });

    实例化类对象,并调用新的方法

    var app = new Simple.Class();
    app.runAll(); //Welcome to the app Goodbye

    重载的另一种写法

    Simple.Class.override({
    // New members...
    });

    实际例子:

    Ext.define('MyButton',{
    extend:'Ext.Action',
    initComponent: function(){
    var me = this;
    var initEnable = true; //初始权限
    }
    });
    Ext.override(MyButton,{
    mysetenable:function(b){ //增加自定义函数设置按钮权限
    if ( this.initEnable ) {
    if (b){
    this.enable();
    }
    else{
    this.disable();
    }
    }
    else{
    this.disable();
    }
    }
    });

    例子2:

    Ext.define('PO_Head_Add_Panel', {
    extend: 'Ext.form.Panel',
    alias: 'widget.PO_Head_Add_Panel',
    //height:400,
    //width:600,
    frame: true,
    layout: 'anchor', //该form分为两列
    bodyPadding: 5, //偏移5px
    //baseCls: "x-plain", //指定使用系统背景色
    //defaults: { anchor: "95%", msgTarget: "side" },
    // anchor: '100%',
    defaults:{//统一设置表单字段默认属性
    //autoFitErrors : false,//展示错误信息时是否自动调整字段组件宽度
    labelSeparator :':',//分隔符
    labelWidth : 60,//标签宽度
    //width : 150,//字段宽度
    allowBlank : false,//是否允许为空
    //blankText : '不允许为空', //若设置不为空,为空时的提示
    labelAlign : 'right',//标签对齐方式
    msgTarget :'qtip' //显示一个浮动的提示信息
    //msgTarget :'title' //显示一个浏览器原始的浮动提示信息
    //msgTarget :'under' //在字段下方显示一个提示信息
    //msgTarget :'side' //在字段的右边显示一个提示信息
    //msgTarget :'none' //不显示提示信息
    //msgTarget :'errorMsg' //在errorMsg元素内显示提示信息
    },
    items:[{
    xtype:'combobox',
    name: 'ToAddress',
    labelWidth:70,
    width:600,
    queryMode: 'local',
    store:TmpAddressStore,
    displayField: 'AddrName',
    valueField: 'AddrName',
    editable : false,// 是否允许输入
    forceSelection : true,// 必须选择一个选项
    msgTarget: 'side',
    allowBlank: false, //是否允许空值
    fieldLabel: '送货地址'
    },{
    xtype:'textfield',
    name: 'HRemark',
    labelWidth:70,
    width:600,
    msgTarget: 'side',
    allowBlank: false, //是否允许空值
    fieldLabel: '备注'
    }],
    initComponent: function(){
    var me = this;
    var PoType = ''; //可以定义属性 obj.PoType 使用
    var TmpHeadRec = Ext.create('PO_HeadData');

    Ext.apply(this, {
    buttons: [{
    text: '保存',
    handler:function(){
    if (me.getForm().isValid()) { //判断提交的数据是否符合正则表达式
    //保存功能
    }
    }
    }, {
    text: '取消',
    handler: function () {
    me.ownerCt.hide();
    }
    }],
    SetFormValue:function(){ //自定义方法 obj.SetFormValue() 方式调用
    me.TmpHeadRec = HeadStore.getAt(0);
    me.getForm().findField('POType').setValue(me.TmpHeadRec.get('POType'));
    me.getForm().findField('PONum').setValue(me.TmpHeadRec.get('PONum'));
    }
    });

    this.callParent(arguments);
    }
    });


    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表