ExtJs之窗口样式实现

大概学习了下Ext的技术,写了一个下图样子的东西,看看应该还不错,布局各方面还算可以,再次记录下,以便日后查用!手机充值:http://yjck67.taobao.com,自己的小店


 下面直接上代码:

 

var sexArray = new Array();
Ext.onReady(function(){
	var JOB = Ext.data.Record.create({name:"job"})//构造一个函数
	var _window = new Ext.Window({
		title:"添加人员",
		width:500,
		height:350,
		plain:true,
		defaultType:"textfield",
		items:[{
			xtype:"panel",
			baseCls:"x-plain",
			style:"padding:5px",
			layout:"column",
			items:[{
				columnWidth:.5,
				baseCls:"x-plain",
				layout:"form",
				labelWidth:55,
				defaults:{xtype:"textfield",width:150},
				items:[{
					fieldLabel:"姓名"
				},{
					fieldLabel:"年龄",
					readOnly:true,
					value:"26"
				},{
					xtype:"datefield",
					format:"Y-m-d",
					readOnly:true,
					value:"1986-02-13",
					fieldLabel:"出生日期",
					listeners:{
						"change":function(){
							var _age = _window.findByType("textfield")[1];
							_age.setValue(new Date().getFullYear() - _window.findByType("datefield")[0].getValue().getFullYear()+1);
						}
					}
				},{
					fieldLabel:"联系电话"
				},{
					fieldLabel:"手机号码"
				},{
					fieldLabel:"电子邮件"
				},{
					xtype:"combo",
					fieldLabel:"性别",
					mode:"local",
					displayField:"sex",
					readOnly:true,
					triggerAction:"all",
					value:"男",
					store:new Ext.data.SimpleStore({
						fields:["sex"],
						data:[["男"],["女"]]
					})
				}]
			},{
				columnWidth:.5,
				layout:"form",
				baseCls:"x-plain",
				labelWidth:55,
				items:{
					xtype:"textfield",
					fieldLabel:"个人照片",
					width:170,
					height:177,
					inputType:"image"
				}
			}]
		},{
			xtype:"panel",
			baseCls:"x-plain",
			layout:"form",
			style:"padding:5px",
			labelWidth:55,
			defaults:{xtype:"textfield"},
			items:[{
					fieldLabel:"身份证号",
					width:400			
				},{
					fieldLabel:"具体地址",
					width:400			
				},{
					xtype:"panel",
					layout:"column",
					baseCls:"x-plain",
					defaults:{baseCls:"x-plain"},
					items:[{
					columnWidth:.4,
					layout:"form",
					labelWidth:55,					
					items:[{
						xtype:"combo",
						fieldLabel:"职位",
						anchor:"100%",
						readOnly:true,
						triggerAction:"all",
						mode:"local",
						displayField:"job",
						store:new Ext.data.SimpleStore({
						fields:["job"],
						data:[["程序员"],["经理"],["主管"],["测试工程师"]]
						}),
						listeners:{
						"select":function(_combo,_record,_index){
							_combo["selectItem"] = _record;//自定义属性,如果selectitem存在则引用,没有则创建
						}
					}
					
					}]					
				},{
					columnWidth:.6,
					buttonAlign:"center",
					style:"padding:0 0 0 5px",
					buttons:[{	
						xtype:"button",
						text:"添加职位",
						handler:function(){
							var _job = _window.findByType("combo")[1];
							//var _store = _job.store;
							var _store = _job.getStore();
							//alert(_store);
							Ext.Msg.prompt("请输入职位名称","职位名称",function(btn,text){
								if(btn == "ok"){
									_store.insert(0,new JOB({job:text}));
									this.setValue(text);
								}
							},_job);
						}
					},{
						xtype:"button",
						text:"修改职位",
						handler:function(){
							var _job = _window.findByType("combo")[1];
							if(_job["selectItem"]!= null){
							Ext.Msg.prompt("请输入修改后的职位名称","职位名称",function(btn,text){
								this["selectItem"].set("job",text);
								this.setValue(text);								
							},_job,false,_job.getValue())
							}
						}
					
					},{
						xtype:"button",
						text:"删除职位",
						handler:function(){
							var _job = _window.findByType("combo")[1];
							Ext.MessageBox.confirm("系统提示","你确认删除当前职位吗?",function(btn){
								if(btn == "yes"){
									try{
									this.store.remove(this["selectItem"]);
									}catch(_err){}
									if(this.store.getCount() != 0){
										this.setValue(this.store.getAt(0).get("job"));
										this["selectItem"] = this.store.getAt(0);
									}else{
										this.setValue("");
									
									}
								}
								
							},_job)
						}
					
					}]
					}]
				}
			]
		}],
		buttons:[{
			text:"确定"
		},{
			text:"取消"
		}],
		allowlock:false,//自定义属性
		listeners:{
			"show":function(){
				if(! _window["allowlock"]){
				_window.findByType("textfield")[7].getEl().dom.src="images/default.jpg";
				_window["allowlock"] = true
				}
				var _job = _window.findByType("combo")[1];
				var _store = _job.store;
				_job.setValue(_store.getAt(0).get("job"));
				_job["selectItem"] = _store.getAt(0);
			}
		}
	});
	_window.show();
});

个人感觉Ext的布局特别像java swing的布局方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值