本文基于ext-6.0.0

  这个页面布局是很多管理系统的常用布局,具体如下图:

  

一、页面主体personalInfo.js

  整个页面采用border布局,分成三部分,这个personalInfo.js就是整个页面的主体,引用了personalToolbar、personalForm、personalGrid三个组件。

Ext.define('Learning.view.centerPanel.personalInfo.personalInfo', {
extend: 'Ext.panel.Panel',
xtype:'personal-main',
// controller: 'personalInfo',
// viewModel: 'personalInfo',
referenceHolder: true,
layout: 'border',
height: window.innerHeight-50, defaults:{
collapsible: false,
split: false
}, items: [
{
reference:'personalToolbar',
xtype:'personal-toolbar',
region:'north',
height:50
},
{
reference:'personalForm',
xtype:'personal-form',
region :'north',
style:'margin-bottom:10px;', //贴在一起不好看,就分开点
},
{
reference:'personalGrid',
xtype:'personal-grid',
region :'center'
}
],
});

  这里要说一下panel,panel是必须要设置height的,我这里设置height为window.innerHeight-50,是因为我这个的父panel有一个height为50的头,所以要减去50。

二、personalToolbar.js

  按钮的事件还没有写,这里先注释上了,之后会写。

Ext.define('Learning.view.centerPanel.personalInfo.personalToolbar',{
extend: 'Ext.toolbar.Toolbar',
xtype:'personal-toolbar', items:[
{
text:'新增',
iconCls:'x-fa fa-plus',
//handler: 'addWin'
},
{
text:'编辑',
iconCls:'x-fa fa-edit',
//handler: 'editWin'
},
{
text:'删除',
iconCls:'x-fa fa-times',
//handler: 'del'
},
{
text:'查询',
iconCls:'x-fa fa-search',
//handler: 'onSearch'
},
{
text:'重置',
iconCls:'x-fa fa-refresh',
//handler: 'reset'
}
]
});

三、personalForm.js

  这里只写了textfield一种,之前有专门写过各种form的总结(Extjs6组件——Form大家族成员介绍),需要别的form可以看下。

Ext.define('Learning.view.centerPanel.personalInfo.personalForm', {
extend: 'Ext.form.Panel',
xtype:'personal-form',
id:'personalForm', defaultType:'textfield',
layout:'anchor',
defaults:{
style:'float:left;',
anchor:'16%'
},
fieldDefaults:{
labelAlign:'right',
labelWidth:65
}, items:[
{
allowBlank: false,
fieldLabel: '姓名',
name: 'name',
minWidth: 180
},
{
allowBlank: false,
fieldLabel: '性别',
name: 'sex',
minWidth: 180
},
{
fieldLabel: '民族',
name: 'nation',
minWidth: 180
},
{
fieldLabel: '电话',
name: 'phone',
minWidth: 180
}
]
});

四、personalGrid.js

Ext.define('Learning.view.centerPanel.personalInfo.personalGrid', {
extend: 'Ext.grid.Panel',
xtype: 'personal-grid', requires: [
'Learning.store.personalInfo.personalStore'
], store: {
type: 'personalStore'
}, selModel: {
selType: 'checkboxmodel',
mode: 'MULTI'
}, columns: [
{
xtype:'rownumberer',
header:'行号',
renderer: function(value,metadata,record,rowIndex){
return (rowIndex+1);
},
width:60,
align: 'center',
},
{
text: '姓名',
dataIndex: 'name',
flex: 1,
minWidth:135
},
{
text: '性别',
dataIndex: 'sex',
flex: 1,
minWidth:135
},
{
text: '民族',
dataIndex: 'nation',
flex: 1,
minWidth:135
},
{
text: '电话',
dataIndex: 'phone',
flex: 2,
minWidth:135
},
]
});

  Grid中的数据来源于store。

Ext.define('Learning.store.personalInfo.personalStore', {
extend: 'Ext.data.Store', alias: 'store.personalStore', fields: [
'name', 'sex' , 'nation' , 'phone'
], data: { items: [
{ name: '皮皮', sex: "女", nation: "汉", phone: "555-111-1111" },
{ name: '卡卡', sex: "男", nation: "回", phone: "555-222-2222" },
{ name: '球球', sex: "男", nation: "苗", phone: "555-333-3333" },
{ name: '贝贝', sex: "女", nation: "汉", phone: "555-444-4444" }
]}, proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty: 'items'
}
}
});

完。

她的脸映着光,像猪脚一样。

Extjs6(五)——写一个包含toolbar、form、grid的子页面的更多相关文章

  1. Extjs6(三)——用extjs6.0写一个简单页面

    本文基于ext-6.0.0 一.关于border布局 在用ext做项目的过程中,最常用到的一种布局就是border布局,现在要写的这个简单页面也是运用border布局来做.border布局将页面分为五 ...

  2. 用extjs6.0写一个点击新建窗口的功能

    一.写一个按钮 注意id { id: 'ListEdit', text:'编辑', iconCls:'x-fa fa-edit' } 二.写新建的页面 下面我新建的是表单,有几点需要注意的: ① 因为 ...

  3. Extjs6(二)——用extjs6.0写一个系统登录及注销

    本文基于ext-6.0.0 一.写login页 1.在view文件夹中创建login文件夹,在login中创建文件login.js和loginController.js(login.js放在class ...

  4. 写一个简单的form表单,当光标离开表单的时候表单的值发送给后台

    <body> <form action="index.php"> <input type="text" name="tx ...

  5. iframe弹出层中关闭包含iframe的div(子页面调用父页面js函数)

    父页面: <div id="win2" style=" width:300px; height:200px; border:1px solid red;" ...

  6. python写一个信息收集四大件的脚本

    0x0前言: 带来一首小歌: 之前看了小迪老师讲的课,仔细做了些笔记 然后打算将其写成一个脚本. 0x01准备: requests模块 socket模块 optparser模块 time模块 0x02 ...

  7. AngularJS中巧用ngModel的$asyncValidators属性写一个验证唯一性的Direcitve

    有这样的一个需求:添加用户的时候,根据主键判断当前添加用户的email是否已经被使用. 为此,我们需要把主键和email来传递给远程的一个API,让API返回结果,告之当前email是否被使用过. 写 ...

  8. Extjs6(四)——侧边栏导航根据路由跳转页面

    本文基于ext-6.0.0 之前做的时候这个侧边栏导航是通过tab切换来切换页面的,但是总感觉不太对劲,现在终于发现怎么通过路由跳转了,分享给大家,可能有些不完善的地方,望大家读后可以给些指点.欢迎留 ...

  9. 使用form 组件写一个用户注册,并用 bootstrap渲染

    需求:使用form组件,写一个用户注册系统,包含用户名, 密码, 确认密码,手机号,性别,爱好,注册.并用bootsrap渲染,成果如下: 首先创建一个django 项目.然后在连接pymysql数据 ...

随机推荐

  1. 团队作业8----第二次项目冲刺(beta阶段)5.20

    Day2--5.20 1.每日讨论 会议内容:1.新成员乔桦和周迪慢慢了解项目. 2.组内负责主要编程的益靖对代码进行了大概的说明. 3.对昨天的工作进行了几点总结. 4.组长对每个成员的任务完成了分 ...

  2. 201521123003《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 我们利用Sca ...

  3. 201521123112《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 下面先贴出contains的源代码: public boolean cont ...

  4. 201521145《Java程序设计》第2周学习总结

    1. 本章学习总结 掌握了整数类型(byte short int long char),浮点型(float double),布尔型(boolean)的使用,以及它们的包装类Byte Short Int ...

  5. 201521123005 《Java程序设计》第1周学习总结

    1. 本章学习总结 了解JDK/JRE/JVM,学会了如何安装JDK 学会使用控制台和eclipse上运行java代码 了解PTA提交的常见套路 http://www.cnblogs.com/zhrb ...

  6. Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)

    4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本 ...

  7. 201521123007《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  8. 201521123023《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. (1)File可以表示一个特定文件的名称,也能表示一个目录下的一组文件的名称. (2)继承自InputStre ...

  9. 201521123080《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 多线程: 操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己 ...

  10. Java: 类继承中 super关键字

    super 关键字的作用有两个: 1)在子类中调用超类的构造器,完成实例域参数的初始化,调用构造器的语句只能作为另一个构造器(通常指的是子类构造器)的第一条语句出现, 2)在子类中调用超类的方法,如: ...