【ExtJS】简单布局应用
前几天学习了ExtJS的各种布局后,以下就是各种实践,从简单做起。
实现目的:
一个提交表单页,一个显示信息页,表单为个人基本资料输入,显示页为基本信息展示。
内容:
总体布局为border布局,展示页为west,提交表单为center。展示页可折叠,默认为折叠状态。
1、展示页用一个panel展示。可折叠,默认为折叠状态。点击提交后展示,点击关闭后关闭。
var show = Ext.create('Ext.panel.Panel',{
region: 'west',
title: 'Show',
width: 150,
margin: '5 2 5 5',
collapsible: true,
collapsed: true,
});
collapsed默认为折叠状态。

2、表单页。内容有:姓名输入、性别选择、出生日期、职务、备注。分别用到5种组件。
(1) 姓名输入:组件选择Textfield。
var form_name = Ext.create('Ext.form.TextField',{
id: 'form_name',
name: 'name',
fieldLabel: 'Name',
labelWidth: 60
});

(2) 性别选择:组件选择RadioGroup.
var form_sex = Ext.create('Ext.form.RadioGroup',{
name: 'sex',
fieldLabel: 'Sex',
columns: 2,
vertical: true,
labelWidth: 60,
items: [
{boxLabel: 'Man', id: 'man', name: 'sex', inputValue: '1'},
{boxLabel: 'Woman', id: 'woman', name: 'sex', inputValue: '2'}
]
});

(3) 出生日期:组件选择Date.
var form_dateTime = Ext.create('Ext.form.Date',{
id: 'form_date',
name: 'dateTime',
fieldLabel: 'DateTime',
labelWidth: 60,
editable: false,
maxValue: new Date()
});

(4) 职务:组件选择ComboBox.
var form_work = Ext.create('Ext.form.ComboBox',{
id: 'form_work',
name: 'work',
fieldLabel: 'Work',
labelWidth: 60,
editable: false,
store: new Ext.data.Store({
fields: ['position','value'],
data: [
{'position': 'Engineer', 'value': '1'},
{'position': 'Boss', 'value': '2'},
{'position': 'director', 'value': '3'}
]
}),
queryMode: 'local',
displayField: 'position',
valueField: 'value'
});

(5) 备注:组件选择TextArea.
var form_remark = Ext.create('Ext.form.TextArea',{
id: 'form_remark',
name: 'remark',
fieldLabel: 'Remark',
labelWidth: 60,
flex: 1
});

Form其子组件布局选择为vbox,vbox配置控件宽度与父组件宽度一样。
下面加2个按钮,按钮位置可以设置buttonAlign来定位,这里默认设置靠右。
关于控件值的获取,通过各自id来获取控件,然后通过getValue()获取值,其中RadioGroup控件通过各自id获取控件,获取的值为true和false,采用三目运算符进行转换输出。最后comboBox组件获取值为getRawValue().
除了最后备注控件,其他控件高度为默认高度,将textArea加个属性flex: 1,表示剩余高度由textArea填满。
信息的展示使用update( String/Object htmlOrData, [Boolean loadScripts], [Function callback] )方法更新。
var form = Ext.create('Ext.form.Panel',{
title: 'Form',
region: 'center',
border: true,
id: 'formId',
margin: '5 2 5 5',
layout: {
type: 'vbox',
align: 'stretch'
},
items: [form_name,form_sex,form_dateTime,form_work,form_remark],
buttons: [{
text: 'Save',
handler: function(){
var name = Ext.getCmp('form_name').getValue();
var sex = Ext.getCmp('man').getValue() ? 'man' : 'woman';
var dateTime = Ext.getCmp('form_date').getValue();
var work = Ext.getCmp('form_work').getRawValue();
var remark = Ext.getCmp('form_remark').getValue();
show.update('<p1>name: </p1>' + name + '<br />' + 'Sex: ' + sex + '<br />' + 'DateTime: ' + Ext.Date.format(dateTime, 'Y-m-d') + '<br />' + 'Work: ' + work + '<br />' + 'remark: ' + remark);
}
},{
text: 'Cancel',
handler: function(){
show.update();
}
}]
});
最后将两个结合起来:
var message = Ext.create('Ext.panel.Panel',{
title: 'Message Layout',
titleAlign: 'center',
layout: 'border',
width: 500,
height: 400,
border: true,
renderTo: Ext.getBody(),
items: [show,form]
});
效果:


【ExtJS】简单布局应用的更多相关文章
- ExtJs常用布局--layout详解(含实例)
序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...
- WPF简单布局 浅尝辄止
WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自 ...
- table 和 div 简单布局
table 简单布局 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...
- 【JQuery Easy UI】后台管理系统的简单布局分享
重要说明:本博已迁移到 石佳劼的博客.有疑问请到 文章新地址 留言..! 近期做的一个简单的后台管理系统,当中用到了JQuery Easy UI框架,对于撸主这样的把控件能摆整齐就谢天谢地的码农来说, ...
- Masonry 布局 cell 高度适应的一种方案(实现类似朋友圈简单布局)
来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89298/ 点击 → 申请加入伯乐在线专栏作者 前言: 我模仿的是微博的布局所以也就没有 评论动态刷新cell. 1 ...
- extjs 简单入门
中文网站:http://extjs.org.cn/ 英文网站:http://www.sencha.com/products/extjs/ 1.简介 extJS是一种主要用于创建前端用户界面,是一个基本 ...
- 利用CSS简单布局的不同组合类型
关于CSS布局页面的简单组合方式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- CSS学习之首页简单布局
作为一个PHPer,在前端方面javascript.jquery这些的日常工作还搞的定.可对于div+css这些东西可就头疼了,所以现在开始学习CSS 跟着燕十八的教程开始从最基础学起,首先练习一个简 ...
- Extjs Column布局常见问题及解决方法
原文地址:http://blog.csdn.net/weoln/article/details/4339533 第一次用Extjs的column布局时遇见了很多问题,记录下来,供大家参考.column ...
随机推荐
- Intel GPA果然是神器
又一次PERF暗黑三...只有GPA帮到了我. Intel GPA是一个用于测试产品性能和质量的工具.使用这个工具可以运行在游戏或3D应用程序中用来看看它们是如何工作的,其优势性的一点是,有了Auto ...
- 一个自定义MVP .net框架 AngelFrame
摘要:本篇是本人在完成.net平台下一个项目时,对于MVP框架引发的一些思考,以及开发了一个小型的配置型框架,名字叫作AngelFrame.这个项目属于前端桌面管理系统的一部分,最终要集成进去. 关键 ...
- sharepoint用户信息同步出错
首先使用工具定位问题,然后权限不够授予权限 C:\Program Files\Microsoft Office Servers\15.0\Synchronization Service\UIShell
- hihocoder1634 Puzzle Game
题目链接:(vjudge) 戳我 和上面那个matrix 比较像. 大概题意就是给你一个n*m的矩阵,然后可以选择其中一个数字进行修改(当然也可以不修改),使得矩阵的最大子矩阵尽可能小.最后输出这个值 ...
- mysql 命令备份还原
备份 mysqldump -h localhost -uroot -p123456 springbootdb > e:/springbootdb.sql 还原 mysql -h localhos ...
- Collection 集合框架
1. Collection 集合框架:在实际开发中,传统的容器(数组)在进行增.删等操作算法和具体业务耦合在一起,会增加程序的开发难度:这时JDK提供了这样的容器---Collection 集合框架, ...
- 201621123023《Java程序设计》第1周学习总结
第1周-Java基本概念 一.本周学习总结 关键词:java发展历史.JVM/JRE/JDK.编辑器 java是一门面向对象的语言,相比于C语言我感觉java更方便.java是运行在JVM上的,不同的 ...
- kvm虚拟机动态迁移
相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可 ...
- 极光开发者沙龙 JIGUANG MEETUP —— 移动应用性能优化实践
活动背景 移动互联网时代,各大互联网公司都已将自己的产品和服务全面移动化,各类新产品功能都会优先在移动 App 上尝试. 应用性能作为影响用户体验最重要的因素,在开发过程中显得尤为重要. 用户网络环境 ...
- json与xml简介
<1>. json : JavaScript 对象表示法(JavaScript Object Notation) 语法: 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 ...