• Extjs4 类的定义和扩展


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

    1. 定义一个类,并给他一个方法

         1: Ext.define('Simple.Class',{
         2:     welcome:function(){
         3:         alert('Welcome to the app');
         4:     }
         5: });
    2. 使用Ext.override方法对已有类进行重载并添加函数

         1: Ext.override(Simle.Class,{
         2:     goodBye:function(){
         3:         alert('Goodbye');
         4:     },
         5:     funAll:function(){
         6:         this.welcome();
         7:         this.goodBye();
         8:     }
         9: });
    3. 实例化类对象,并调用新的方法

         1: var app = new Simple.Class();
         2: app.runAll();   //Welcome to the app     Goodbye
    4. 重载的另一种写法

         1: Simple.Class.override({
         2:    // New members...
         3: });

    实际例子:

    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,
        //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,
                    600,
                    queryMode: 'local',
                    store:TmpAddressStore,
                    displayField: 'AddrName',
                    valueField: 'AddrName',                
    				editable : false,// 是否允许输入
    				forceSelection : true,// 必须选择一个选项
                    msgTarget: 'side',
                    allowBlank: false,	//是否允许空值
                    fieldLabel: '送货地址'
        },{
                	xtype:'textfield',
                    name: 'HRemark',
                    labelWidth:70,
                    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);
         }    
    });
    




  • 相关阅读:
    【C#语言规范版本5.0学习】2 词法结构(一、简述)
    【C#语言规范版本5.0学习】1.11 特性
    TP5.1 实现超时未支付订单自动关闭
    tp5.1使用队列
    开启队列时,命令行输入php think queue:listen出现乱码
    mysql 查询分组后的总条数
    处理mysql先排序在分组
    mysql 5.7 sql_mode设置 坑
    Windows 版 SourceTree 免登录跳过初始设置的方法和下载地址
    thinkphp5.1-jwt的安装与使用
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3161431.html
Copyright © 2020-2023  润新知