`
idealab
  • 浏览: 195309 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Ext学习笔记(一):组件

    博客分类:
  • Ajax
阅读更多
大四毕业实习系统是一个中小企业级别的HR系统,在用友实习期间钦佩于这家中国最大软件供应商里的智慧,实习期满之后便跃跃欲试想自己实现一个在脑海中酝酿已久的Web版HRMS(用友集团级软件eHR是B/S模式,页面端是纯Applet实现),本希望利用大量的页面来实现业务流程,但是发现ExtJS华丽外表和组件化风格(貌似其思想来源于Java Swing),故利用MySQL+Hibernate+Spring+ExtJS开发系统了。
数据库表的设计就不讲了,不堪回首啊,很惨,很复杂(自己给搞复杂了),就从Ext开始记录起吧。
Ext来源于Yahoo的YUI界面开发技术,其组件架构如下:


组件之间的组合可以呈现出我们想要的任何界面,在创建以及添加组件的时候需要注意到:1、组件创建形式:
var cmp = new Ext.Panel({title:'myCmp',html:'This is my Component',width:300,layout:'fit'});
每个创建组件所需参数都是JSON对象.
2、面板的布局方式:利用layout属性来定义,布局方式有以下几种:containerLayout,formLayout,tableLayout,columnLayout,borderLayout,anchorLayout,fitLayout,accordionLayout,具体介绍请看这里.

登录页面将formPanel对象作为items属性值添加到主Panel中,以下是我的登录页面代码:
// @author:Jerry Joe
// @time:2008.12.30
Ext.namespace("Ext.src");
Ext.src.roles = [['superadmin', '超级管理员'], ['admin', '系统管理员'], ['user', '系统用户']];
Ext.onReady(function() {
	var loginform = new Ext.form.FormPanel({
				title : 'Login Form',
				id : 'login_form',
				frame : true,
				height : 185,
				width : 280,
				defaultType : 'textfield',
				defaults : {
					width : 135,
					border : '5px'
				},
				labelAlign : 'left',
				buttonAlign : 'center',
				items : [new Ext.form.ComboBox({
									fieldLabel : '登入方式',
									name : 'loginas',
									hiddenName : 'logintype',
									emptyText : '请选择登入方式..',
									blankText : '必须选择登入方式',
									editable : false,
									allowBlank : false,
									store : new Ext.data.SimpleStore({
												fields : ['value', 'display'],
												data : Ext.src.roles
											}),
									valueField : 'value',
									displayField : 'display',
									mode : 'local',
									forceSelection : true,
									triggerAction : 'all'
								}), {
							fieldLabel : '用户名',
							name : 'username',
							allowBlank : false
						}, {
							fieldLabel : '密码',
							name : 'password',
							xtype : 'textfield',
							allowBlank : false,
							inputType : 'password'
						}, {
							fieldLabel : '登入日期',
							name : 'time',
							xtype : 'datefield',
							readOnly: true,
							format: 'y-m-d'
						}],
				buttons : [{
							text : '登入',
							handler : function() {
								// handler login
							}
						}, {
							text : '重置',
							handler : function() {
								// reset the fields
							}
						}]
			});
	var panel = new Ext.Panel({
				renderTo : 'main',
				title : 'Welcome to eHR',
				autoHeight : false,
				height : 500,
				layout : 'form',
				items : [loginform]
			});
	});


业务主页面利用Viewport组件,包含布局为accordionLayout的导航栏面板和主面板,代码如下:
Ext.onReady(function() {
			Ext.QuickTips.init();
			var navPanel = new Ext.Panel({
						region : 'west',
						contentEl : 'nav',
						id : 'nav_panel',
						name : 'navPanel',
						title : '导航栏',
						split : true,
						border : true,
					    collapsible : false,
						width : 200,
						minSize : 200,
						maxSize : 250,
						layout : 'accordion',
						layoutConfig : {
							animate : true
						},
						items : [{
									title : '系统管理',
									html : '<div id="tree-sysadmin"></div>'
								}, {
									title : '自助操作',
									html : '<div id="tree-selfoper"></div>'
								}]
					});
			var mainPanel = new Ext.Panel({
						region : 'center',
						contentEl : 'main',
						id : 'main_panel',
						name : 'mainPanel',
						title : '主操作界面',
						split : true,
						collapsible : true,
						border : true,
						layout : 'anchor'
					});
			var viewport = new Ext.Viewport({
						layout : 'border',
						items : [{
									region : 'north',
									contentEl : 'header',
									split : true, // 可改变框体大小
									border : true,
									collapsible : true, // 可收缩
									height : 72,
									minSize : 72,
									maxSize : 120
								}, {
									region : 'south',
									contentEl : 'footer',
									split : true,
									border : true,
									collapsible : true,
									height : 30,
									minSize : 30,
									maxSize : 50
								},navPanel, mainPanel]
					});

		});
  • 大小: 47.8 KB
  • 大小: 38.5 KB
  • 大小: 40.1 KB
分享到:
评论

相关推荐

    Ext学习笔记 解决Ext遇到的基础问题,如组件的应用,Ext的布局,表单,Grid控件的讲解,还要一些综合应用

    解决Ext遇到的基础问题,如组件的应用,Ext的布局,表单,Grid控件的讲解,还要一些综合应用

    extJs 2.1学习笔记

    20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) 59 23. extJs 2.0学习笔记(Ext.Panel篇四) 62 24. extJs 2.0学习笔记(组件总论篇) 66 25....

    ExtJs学习笔记,共30讲

    20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) 59 23. extJs 2.0学习笔记(Ext.Panel篇四) 62 24. extJs 2.0学习笔记(组件总论篇) 66 25....

    Extjs4.0学习笔记

    xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态加载JS的方式来加快组件的渲染,我们再也不必一次加载已经达到1MB的ext-all.js了,本文介绍如何在EXTJS4中创建一个window。 共:10 小节, ...

    ExtJs 学习笔记基础篇 Ext组件的使用第1/2页

    Ext组件由Component类定义,每一种组件都有一个指定的xtype属性值,通过该值可以得到一个组件的类型或者是定义一个指定类型的组件。 Ext组件体系由下图所示: 组件大致可分成三大类,即基本组件、工具栏组件、表单...

    extjs学习笔记

    在使用Ext开发的应用程序中,组件Component是最高层次的抽象,是直接给用户使用的,Ext Element是Ext的底层API,主要是由Ext或自定义组件调用的,而DOM是W3C标准定义的原始API,Ext的Element通过操作DOM 来实现页面...

    2828-Extjs4.0学习笔记大全.pdf

    ExtJS4 学习笔记(一)---window 的创建 Extjs4,创建 Ext 组件有了新的方式,就是 Ext.create(....),而且可以使用动态加载 JS 的方式 来加快组件的渲染,我们再也不必一次加载已经达到 1MB 的 ext-all.js 了,本文...

    ExtJs 学习笔记 Ext.Panle Ext.TabPanel Ext.Viewport第1/3页

    通过此文能学习到如下内容 1.创建一个简单的面板 Ext.Panel 2.制作一个可以拖动的面板 Ext.Panel 3 ...面板可以放入其他任何容器中,面板本身也是一个容器,所以面板里面也可以包含其他组件。面板的类名为Ext.Panel,其x

    ExtJS4中文教程2 开发笔记 chm

    ExtJS4学习笔记(一)---window的创建 ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ...

    Extjs学习笔记之七 布局

    Extjs Layout Browser . Extjs3.1.0 版本支持17种,下面挑... 示例用法: 代码如下: new Ext.Panel({ layout: ‘absolute’, title: ‘AbsuluteLayout’, renderTo: document.body, frame: true, defaultType: ‘textf

    Extjs学习笔记之二 初识Extjs之Form

    Extjs中的表单组件是Ext.form.BasicForm,不过最简单最常用的是Ext.form.FormPanel控件,它继承自Panel,具有一定的界面显示控制能力,它其中包含着一个BasicForm对象,用来执行向服务器提交,加载等动作。...

    Extjs学习笔记之四 工具栏和菜单

    下面是一个例子: 代码如下: [removed] Ext.onReady(function() { var tb = new Ext.Toolbar({ renderTo: document.body, width: 600, height: 100, items: [ { // xtype: ‘button’, // default for Toolbars, ...

Global site tag (gtag.js) - Google Analytics