【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 ...
随机推荐
- K倍区间 蓝桥杯
问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- javascript高级程序设计读书笔记----严格模式
ECMAScript5最早引入“严格模式". 使用 "use strict"开启严格模式 function test(){ "use strict"; ...
- Java50道经典习题-程序4 分解质因数
题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经 ...
- 神器与经典--sp_helpIndex
======================================================= 每每和那些NB的人学习技术的时候,往往都佩服他们对各个知识点都熟捻于心,更佩服的是可以在 ...
- 反射:获取Class对象的三种方式
获取Class对象的三种方式 package lianxiApril18; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型( ...
- CH的电影推荐
1.推荐电影 张艺谋:一个都不能少 2.下载站点 TL95
- Mysql内置功能《一》流程控制
delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THEN SELECT 1; ELSE ...
- JS 性别选择
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用httpclient对zip格式的响应数据解压
HttpResponse response = httpClient.execute(httpPost); //对zip进行解压 response.setEntity(new GzipDecompre ...
- ubuntu 12.0.4 下python3.x web环境搭建
ubuntu 12.0.4 安装python3.x 1. $ sudo add-apt-repository ppa:fkrull/deadsnakes$ sudo apt-get update$ s ...