日期:2014-05-16 浏览次数:20438 次
前面搞了这么久的基础,下面该来做这个界面了:
这是一个浮动窗口,可以在页面内到处拉动。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" /> <title>登陆窗体</title> <script type="text/javascript" src="../../adapter/ext/ext-base.js"> </script> <script type="text/javascript" src="../../ext-all.js"> </script> <script type="text/javascript" src="../../build/locale/ext-lang-zh_CN.js"> </script> <script type="text/javascript"> Ext.onReady(function(){ var win = new Ext.Window({ title:"添加个人信息", width:440, layout:"form", labelWidth:55, plain:true, bodystyle:"padding:5px", height:370, buttonAlign:"center", defaults:{xtype:"textfield",width:360}, items:[{ xtype:"panel", baseCls:"x-plain", //base class 基类,和plain:true效果差不多 layout:"column", style:"padding:5px", items:[{ baseCls:"x-plain", columnWidth:.5, layout:"form", labelWidth:55, defaults:{xtype:"textfield",width:115}, items:[{ fieldLabel:"姓名" },{ fieldLabel:"年龄", readOnly:true //只读 },{ xtype:"datefield", fieldLabel:"出生日期", value:new Date(),//也可"2010-10-1" //readOnly:true, //这个一设置,都不能选择了 editable:false, //不可编辑 format:"Y-m-d", //格式化成:2010-10-30 listeners:{ "blur":function(){ //当失去焦点的时候就触发此事件 var dayDif = new Date().getFullYear()-this.getValue().getFullYear(); //把年龄设成今年和出生日期之差 this.ownerCt.findByType("textfield")[1].setValue(dayDif); } } },{ fieldLabel:"联系电话" },{ fieldLabel:"手机号码" },{ fieldLabel:"电子邮件" },{ fieldLabel:"性别", xtype:"combo", editable:false,//不可编辑 mode:"local", value:"男", triggerAction:"all",//如果上面设置了value的话,这个就是必须的,它默认值是query displayField:"sex",//数据选择列,下面的store之后会讲,这里面只是稍微知道有这么一个东西就行了 store:new Ext.data.SimpleStore({ fields:["sex"], data:[["男"],["女"]] }) }] },{ baseCls:"x-plain", columnWidth:.5, layout:"form", labelWidth:45, items:{ xtype:"textfield", fieldLabel:"照片", width:150, height:150, inputType:"image" //设置成图片 } }] },{ fieldLabel:"身份证号" },{ fieldLabel:"个体地址" },{ fieldLabel:"职务" }], buttons:[{ text:"确定" },{ text:"取消" }], listeners:{ "show":function(win){ //用“render”的话getEl()取不到值,所以只能用show win.findByType("textfield")[7].getEl().dom.src="conan.png"; } } }).show(); }); </script> </head> <body> </body> </html>
?其中有两个地方需要再解释:
?
1、getEl()的官方解释
Returns the Ext.Element which encapsulates this Component.
This will usually be a <DIV> element created by the class's onRender method, but that may be overridden using the autoEl config.
?
Note: this element will not be available until this Component has been rendered.
?
To add listeners for DOM events to this Component (as opposed to listeners for this Component's own Observable events), see the listeners config for a suggestion, or use a render listener directly:
new Ext.Panel({
?? ?title: 'The Clickable Panel',
?? ?listeners: {
?? ? ? ?render: function(p) {
?? ? ? ? ? ?// Append the Panel to the click handler's argument list.
?? ? ? ? ? ?p.getEl().on('click', handlePanelClick.createDelegate(null, [p], true));
?? ? ? ?},
?? ? ? ?single: true ?// Remove the listener after first invocation
?? ?}
});
Para