无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

Posted HuSam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]相关的知识,希望对你有一定的参考价值。

extjs技术交流,欢迎加群(201926085)程序员俱乐部-ExtJs(5群)

前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下。

(1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)File (10)Editor

1.代码如下:

复制代码
  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <title></title>
  5     <!--ExtJs框架开始-->
  6     <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script>
  7     <script type="text/javascript" src="/Ext/ext-all.js"></script>
  8     <script src="/Ext/src/locale/ext-lang-zh_CN.js" type="text/javascript"></script>
  9     <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" />
 10     <style type="text/css">
 11         .x-form-unit
 12         {
 13             height: 22px;
 14             line-height: 22px;
 15             padding-left: 2px;
 16             display: inline-block;
 17             display: inline;
 18         }
 19     </style>
 20     <!--ExtJs框架结束-->
 21     <script type="text/javascript">
 22 
 23         //----------------------重写文本框开始----------------------//
 24         Ext.override(Ext.form.TextField, {
 25             unitText: \'\',
 26             onRender: function (ct, position) {
 27                 Ext.form.TextField.superclass.onRender.call(this, ct, position);
 28                 // 如果单位字符串已定义 则在后方增加单位对象   
 29                 if (this.unitText != \'\') {
 30                     this.unitEl = ct.createChild({
 31                         tag: \'div\',
 32                         html: this.unitText
 33                     });
 34                     this.unitEl.addClass(\'x-form-unit\');
 35                     // 增加单位名称的同时 按单位名称大小减少文本框的长度 初步考虑了中英文混排 未考虑为负的情况   
 36                     this.width = this.width - (this.unitText.replace(/[^\\x00-\\xff]/g, "xx").length * 6 + 2);
 37                     // 同时修改错误提示图标的位置   
 38                     this.alignErrorIcon = function () {
 39                         this.errorIcon.alignTo(this.unitEl, \'tl-tr\', [2, 0]);
 40                     };
 41                 }
 42             }
 43         });
 44         //----------------------重写文本框结束----------------------//
 45 
 46         Ext.onReady(function () {
 47             //初始化标签中的Ext:Qtip属性。
 48             Ext.QuickTips.init();
 49             Ext.form.Field.prototype.msgTarget = \'side\';
 50 
 51             //------------第一列内容开始-------------//
 52             //姓名
 53             var txtusername = new Ext.form.TextField({
 54                 width: 130,
 55                 allowBlank: false,
 56                 maxLength: 4,
 57                 name: \'username\',
 58                 fieldLabel: \'姓名\',
 59                 blankText: \'请输入姓名\',
 60                 maxLengthText: \'姓名不能超过4个字符\'
 61             });
 62             //政治面貌数据源
 63             var combostore = new Ext.data.ArrayStore({
 64                 fields: [\'id\', \'name\'],
 65                 data: [[1, \'团员\'], [2, \'党员\'], [3, \'其他\']]
 66             });
 67             //政治面貌下拉列表
 68             var cobpolitical = new Ext.form.ComboBox({
 69                 width: 130,
 70                 allowBlank: false,
 71                 fieldLabel: \'政治面貌\',
 72                 store: combostore,
 73                 displayField: \'name\',
 74                 valueField: \'id\',
 75                 triggerAction: \'all\',
 76                 emptyText: \'请选择...\',
 77                 blankText: \'请选择政治面貌\',
 78                 editable: false,
 79                 mode: \'local\'
 80             });
 81             //毕业院校
 82             var txtgraduateschool = new Ext.form.TextField({
 83                 width: 130,
 84                 allowBlank: false,
 85                 maxLength: 10,
 86                 name: \'graduateschool\',
 87                 fieldLabel: \'毕业院校\',
 88                 blankText: \'请输入毕业院校\',
 89                 maxLengthText: \'毕业院校不能超过10个字符\'
 90             });
 91             //通信地址
 92             var txtaddress = new Ext.form.TextField({
 93                 width: 130,
 94                 allowBlank: false,
 95                 maxLength: 30,
 96                 name: \'address\',
 97                 fieldLabel: \'通信地址\',
 98                 blankText: \'请输入通信地址\',
 99                 maxLengthText: \'通信地址不能超过30个字符\'
100             });
101             //第一列包含4行
102             var column1 = {
103                 columnWidth: .28,
104                 layout: \'form\',
105                 items: [
106                     txtusername, cobpolitical, txtgraduateschool, txtaddress
107                 ]
108             };
109             //------------第一列内容结束-------------//
110             //------------第二列内容开始-------------//
111             //性别
112             var rdosex = new Ext.form.RadioGroup({
113                 fieldLabel: \'性别\',
114                 width: 130,
115                 style: \'padding-top:3px;height:17px;\',
116                 items: [{ name: \'sex\', inputValue: \'0\', boxLabel: \'男\', checked: true }, { name: \'sex\', inputValue: \'1\', boxLabel: \'女\'}]
117             });
118             //身高
119             var numheight = new Ext.form.NumberField({
120                 fieldLabel: \'身高\',
121                 width: 117,
122                 decimalPrecision: 0,
123                 minValue: 1,
124                 maxValue: 400,
125                 name: \'height\',
126                 unitText: \' cm\',
127                 allowBlank: false,
128                 blankText: \'请输入身高\'
129             });
130             //毕业专业
131             var txtprofessional = new Ext.form.TextField({
132                 width: 130,
133                 allowBlank: false,
134                 maxLength: 30,
135                 name: \'professional\',
136                 fieldLabel: \'毕业专业\',
137                 blankText: \'请输入毕业专业\',
138                 maxLengthText: \'毕业专业不能超过30个字符\'
139             });
140             //联系电话
141             var txtphone = new Ext.form.TextField({
142                 width: 130,
143                 allowBlank: false,
144                 maxLength: 20,
145                 name: \'phone\',
146                 fieldLabel: \'联系电话\',
147                 blankText: \'请输入联系电话\',
148                 maxLengthText: \'联系电话不能超过20个字符\'
149             });
150             //第二列包含4行
151             var column2 = {
152                 columnWidth: .28,
153                 layout: \'form\',
154                 items: [rdosex, numheight, txtprofessional, txtphone]
155             };
156             //------------第二列内容结束-------------//
157             //------------第三列内容开始-------------//
158             //年龄
159             var numage = new Ext.form.NumberField({
160                 fieldLabel: \'年龄\',
161                 width: 117,
162                 decimalPrecision: 0,
163                 minValue: 1,
164                 maxValue: 60,
165                 name: \'age\',
166                 unitText: \' 岁\',
167                 allowBlank: false,
168                 blankText: \'请输入年龄\'
169             });
170             //体重
171             var numweight = new Ext.form.NumberField({
172                 fieldLabel: \'体重\',
173                 width: 117,
174                 decimalPrecision: 0,
175                 minValue: 1,
176                 maxValue: 300,
177                 name: \'age\',
178                 unitText: \' kg\',
179                 allowBlank: false,
180                 blankText: \'请输入体重\'
181             });
182             //毕业日期
183             var dategraduation = new Ext.form.DateField({
184                 fieldLabel: \'毕业日期\',
185                 name: \'graduationdate\',
186                 width: 117,
187                 format: \'Y-m-d\',
188                 editable: false,
189                 allowBlank: false,
190                 blankText: \'请选择毕业日期\'
191             });
192             //第三列包含3行
193             var column3 = {
194                 columnWidth: .25,
195                 layout: \'form\',
196                 items: [numage, numweight, dategraduation]
197             };
198             //------------第三列内容结束-------------//
199             //------------第四列内容开始-------------//
200             //创建div组件
201             var imagebox = new Ext.BoxComponent({
202                 autoEl: {
203                     style: \'width:65px;height:60px;margin:0px auto;border:1px solid #ccc; text-align:center;padding-top:10px;margin-bottom:8px\',
204                     tag: \'div\',
205                     id: \'imageshow\',
206                     html: \'暂无相片\'
207                 }
208             });
209             var uploadbutton = new Ext.Button({
210                 text: \'上传相片\',
211                 style: \'margin:0px auto;\',
212                 handler: function () {
213                     alert(\'弹出新窗体上传相片!\');
214                 }
215             });
216             var column4 = {
217                 columnWidth: .16,
218                 layout: \'form\',
219                 items: [imagebox, uploadbutton]
220             };
221             //------------第四列内容结束-------------//
222             //招聘来源
223             var checksource = new Ext.form.CheckboxGroup({
224                 fieldLabel: \'招聘来源\',
225                 style: \'padding-top:3px;height:17px;\',
226                 items: [{
227                     boxLabel: \'报纸招聘\',
228                     inputValue: \'0\'
229                 }, {
230                     boxLabel: \'校园招聘\',
231                     inputValue: \'1\'
232                 }, {
233                     boxLabel: \'人才市场\',
234                     inputValue: \'2\'
235                 }, {
236                     boxLabel: \'招聘网站\',
237                     inputValue: \'3\'
238                 }]
239             });
240             //创建文本上传域
241             var exteditor = new Ext.form.HtmlEditor({
242                 fieldLabel: \'其他信息\',
243                 width: 745,
244                 height: 320
245             });
246             //表单
247             var form = new Ext.form.FormPanel({
248                 frame: true,
249                 title: \'员工信息表\',
250                 style: \'margin:10px\',
251                 labelWidth: 70,
252                 buttonAlign: \'center\',
253                 items: [{
254                     layout: \'column\',
255                     items: [
256                         column1,
257                         column2,
258                         column3,
259                         column4
260                     ]
261                 }, checksource,
262                     exteditor
263                 ],
264                 buttons: [{
265                     text: \'保存\',
266                     handler: function () { alert(\'保存方法!\') }
267                 }, {
268                     text: \'重置\',
269                     handler: function () { alert(\'重置方法!\') }
270                 }]
271             });
272             //窗体
273             var win = new Ext.Window({
274                 title: \'窗口\',
275                 width: 900,
276                 height: 580,
277                 resizable: true,
278                 modal: true,
279                 closable: true,
280                 maximizable: true,
281                 minimizable: true,
282                 buttonAlign: \'center\',
283                 items: form
284             });
285             win.show();
286 
287         });
288     </script>
289 </head>
290 <body>
291 <!--
292 说明:
293 (1)254行layout: \'column\':以列的方式布局,这里总共分了4列,布局的内容下个教程讲解。
294 -->
295 </body>
296 </html>
复制代码

2.效果如下:

无废话extjs教程

转载请注明出处:http://www.cnblogs.com/iamlilinfeng

活到老,学到老,练到老...

以上是关于无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]的主要内容,如果未能解决你的问题,请参考以下文章

无废话ExtJs 入门教程十九[API的使用]

无废话ExtJs 入门教程十三[上传图片:File]

无废话ExtJs 入门教程二十一[继承:Extend]

无废话ExtJs 入门教程十六[页面布局:Layout]

无废话ExtJs 入门教程十四[文本编辑器:Editor]

无废话WCF系列教程 -- 李林峰