Extjs模块中组件的编写规范

请注意,组件的类定义中,不允许使用new来定义子成员,若有必要,则使用xtype。

Ext.ns("modScoreManage.EditForm");

/** 放置在一个window中的用于编辑学生信息的表单
 * @arguments String:sName,sGender,dBirthday,nAge,nClazzId,sId 分别为学生的各项信息
 * @author William
 * @lastEdit William
 * @version 2012/1/12
 * */
modScoreManage.EditForm = Ext.extend(Ext.FormPanel,{
	
	//初始化组件  
	constructor:function(sName,sGender,dBirthday,nAge,nClazzId,sId){   

		// 变量定义
		this.nFormWidth = 280;
		this.nLabelWidth = 45;
		this.storeStudentsData = global.util.Stores.getStudentsStore();
		
		// 调用父类构造函数
		modScoreManage.EditForm.superclass.constructor.call(this,{
			
			labelWidth:this.nLabelWidth,
			frame:true,
			bodyStyle:'padding:5px 5px 5px',
			width:this.nFormWidth,
			autoHeight:true,
			waitMsgTarget:true,
			reader:this.reader,
			defaultType:'textfield'  
		
			/*---------------------定义表单中包含的控件----------------------*/
		   ,items:[{
				  fieldLabel:'姓名',
				  name:'EditForm_sName',
				  value:sName,
				  allowBlank:false
			  	},{
			  	 fieldLabel:'性别',
	 			 name:'EditForm_sGender',
	 			 value:sGender,
	 			 allowBlank:false
	 		 	}
	 		 	,{
	 		 		xtype:'datefield' // 使用xtype来实现对象延迟创建
	 		 		,fieldLabel:'生日'
	 		 		,name:'EditForm_dBirthday'
	 		 		,value:dBirthday
	 		 		,format:'Y-m-d'  // 注意这里 y 的大小写是有区别的。
	 		 	}
//	 		 	,new Ext.form.DateField({
//	 		 		fieldLabel:'生日'
//	 		 		,name:'EditForm_dBirthday'
//	 		 		,value:dBirthday
//	 		 		,format:'Y-m-d'  // 注意这里 y 的大小写是有区别的。
//	 		 	})
	 			,{fieldLabel:'年龄',
	 			 name:'EditForm_nAge',
	 			 value:nAge,
	 			 allowBlank:true
	 			},{fieldLabel:'班级',
	 			 name:'EditForm_nClazzId',
	 			 value:nClazzId,
	 			 allowBlank:true
	 		 	},{ 
	 			 name:'EditForm_sId',
	 			 hidden:true,   // hidden 和 hideLabel同时设置才能隐藏这个表单域
	 			 hideLabel:true,
	 			 value:sId
		 		 }
		 		 ]
		 	,buttons: [{
		        		  text:'修改',
		        		  disabled:false,
		        		  handler:this.onBtnEditClick
		        	  },{
						  text:'取消',
						  handler:this.onBtnCancelClick
		        	  }]
		    /*--------------------/定义表单中包含的控件----------------------*/
		});   
	    
	} 
	 /*------------------------------Methods------------------------------------------*/
	/**销毁该表单窗口
	 * @author William
	 * */
	,destroyWnd:function(){
		this.ownerCt.destroy();
	}
	/*-----------------------------/Methods------------------------------------------*/
	/*------------------------------Event Handlers-----------------------------------*/
	,onBtnEditClick:function(){
		
		// 将提交按钮禁用,防止用户重复提交
		this.setDisabled(true); 
		
		// 发送表单提交请求
	    this.ownerCt.ownerCt.getForm().submit({
			  url:'student_edit.do',
			  method:'POST',
			  scope:this.ownerCt.ownerCt, // 回到formPanel这一层
			  
			  /*------------------------------请求返回的处理------------------------------*/
			  success: function(form,action){
				  Ext.Msg.alert('信息','信息修改成功',function(){
	            	  
				  });
				  this.storeStudentsData.reload();
				 this.destroyWnd();
				 
			  },
			  failure: function(form,action){
	        	   Ext.Msg.show({
	        		   title: '信息提示',
	        		   icon:Ext.MessageBox.QUESTION,
	        		   msg:'修改失败',
	        		   buttons:Ext.MessageBox.OK
	        	   });
	        	   this.storeStudentsData.reload();
	        	   
				 this.destroyWnd();
			  }
			  /*-----------------------------/请求返回的处理------------------------------*/
	  });
	  	
	  }
    ,onBtnCancelClick:function() {
    	// 这里的this是 Cancel按钮
    	this.ownerCt.ownerCt.destroyWnd(); 
    	
    }  
    /*-----------------------------/Event Handlers-----------------------------------*/  

// 注册该类
Ext.reg('modScoreManage_EditForm', modScoreManage.EditForm );
});


针对若干特定组件:

1. Ext.window组件,必须设置 constrainHeader:true 。保证window不超过浏览器顶端。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值