本文基于ext-6.0.0

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

  

一、页面主体personalInfo.js

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

  1. Ext.define('Learning.view.centerPanel.personalInfo.personalInfo', {
  2. extend: 'Ext.panel.Panel',
  3. xtype:'personal-main',
  4. // controller: 'personalInfo',
  5. // viewModel: 'personalInfo',
  6. referenceHolder: true,
  7. layout: 'border',
  8. height: window.innerHeight-50,
  9.  
  10. defaults:{
  11. collapsible: false,
  12. split: false
  13. },
  14.  
  15. items: [
  16. {
  17. reference:'personalToolbar',
  18. xtype:'personal-toolbar',
  19. region:'north',
  20. height:50
  21. },
  22. {
  23. reference:'personalForm',
  24. xtype:'personal-form',
  25. region :'north',
  26. style:'margin-bottom:10px;', //贴在一起不好看,就分开点
  27. },
  28. {
  29. reference:'personalGrid',
  30. xtype:'personal-grid',
  31. region :'center'
  32. }
  33. ],
  34. });

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

二、personalToolbar.js

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

  1. Ext.define('Learning.view.centerPanel.personalInfo.personalToolbar',{
  2. extend: 'Ext.toolbar.Toolbar',
  3. xtype:'personal-toolbar',
  4.  
  5. items:[
  6. {
  7. text:'新增',
  8. iconCls:'x-fa fa-plus',
  9. //handler: 'addWin'
  10. },
  11. {
  12. text:'编辑',
  13. iconCls:'x-fa fa-edit',
  14. //handler: 'editWin'
  15. },
  16. {
  17. text:'删除',
  18. iconCls:'x-fa fa-times',
  19. //handler: 'del'
  20. },
  21. {
  22. text:'查询',
  23. iconCls:'x-fa fa-search',
  24. //handler: 'onSearch'
  25. },
  26. {
  27. text:'重置',
  28. iconCls:'x-fa fa-refresh',
  29. //handler: 'reset'
  30. }
  31. ]
  32. });

三、personalForm.js

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

  1. Ext.define('Learning.view.centerPanel.personalInfo.personalForm', {
  2. extend: 'Ext.form.Panel',
  3. xtype:'personal-form',
  4. id:'personalForm',
  5.  
  6. defaultType:'textfield',
  7. layout:'anchor',
  8. defaults:{
  9. style:'float:left;',
  10. anchor:'16%'
  11. },
  12. fieldDefaults:{
  13. labelAlign:'right',
  14. labelWidth:65
  15. },
  16.  
  17. items:[
  18. {
  19. allowBlank: false,
  20. fieldLabel: '姓名',
  21. name: 'name',
  22. minWidth: 180
  23. },
  24. {
  25. allowBlank: false,
  26. fieldLabel: '性别',
  27. name: 'sex',
  28. minWidth: 180
  29. },
  30. {
  31. fieldLabel: '民族',
  32. name: 'nation',
  33. minWidth: 180
  34. },
  35. {
  36. fieldLabel: '电话',
  37. name: 'phone',
  38. minWidth: 180
  39. }
  40. ]
  41. });

四、personalGrid.js

  1. Ext.define('Learning.view.centerPanel.personalInfo.personalGrid', {
  2. extend: 'Ext.grid.Panel',
  3. xtype: 'personal-grid',
  4.  
  5. requires: [
  6. 'Learning.store.personalInfo.personalStore'
  7. ],
  8.  
  9. store: {
  10. type: 'personalStore'
  11. },
  12.  
  13. selModel: {
  14. selType: 'checkboxmodel',
  15. mode: 'MULTI'
  16. },
  17.  
  18. columns: [
  19. {
  20. xtype:'rownumberer',
  21. header:'行号',
  22. renderer: function(value,metadata,record,rowIndex){
  23. return (rowIndex+1);
  24. },
  25. width:60,
  26. align: 'center',
  27. },
  28. {
  29. text: '姓名',
  30. dataIndex: 'name',
  31. flex: 1,
  32. minWidth:135
  33. },
  34. {
  35. text: '性别',
  36. dataIndex: 'sex',
  37. flex: 1,
  38. minWidth:135
  39. },
  40. {
  41. text: '民族',
  42. dataIndex: 'nation',
  43. flex: 1,
  44. minWidth:135
  45. },
  46. {
  47. text: '电话',
  48. dataIndex: 'phone',
  49. flex: 2,
  50. minWidth:135
  51. },
  52. ]
  53. });

  Grid中的数据来源于store。

  1. Ext.define('Learning.store.personalInfo.personalStore', {
  2. extend: 'Ext.data.Store',
  3.  
  4. alias: 'store.personalStore',
  5.  
  6. fields: [
  7. 'name', 'sex' , 'nation' , 'phone'
  8. ],
  9.  
  10. data: { items: [
  11. { name: '皮皮', sex: "女", nation: "汉", phone: "555-111-1111" },
  12. { name: '卡卡', sex: "男", nation: "回", phone: "555-222-2222" },
  13. { name: '球球', sex: "男", nation: "苗", phone: "555-333-3333" },
  14. { name: '贝贝', sex: "女", nation: "汉", phone: "555-444-4444" }
  15. ]},
  16.  
  17. proxy: {
  18. type: 'memory',
  19. reader: {
  20. type: 'json',
  21. rootProperty: 'items'
  22. }
  23. }
  24. });

完。

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

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. 结队编程--基于GUI的四则运算

    coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...

  2. 【beta】阶段 第七次 Scrum Meeting

    每日任务 1.本次会议为第七次 Meeting会议: 2.本次会议在下午14:45,课间休息时间在陆大楼召开,召开本次会议为10分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item ...

  3. Swing-setAlignmentX()用法-入门

    先看下API: public void setAlignmentX(float alignmentX) 设置垂直对齐方式. 参数: alignmentX - 新的垂直对齐方式 网上关于这个函数的详细情 ...

  4. 201521123024《Java程序设计》第8周学习总结

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

  5. 201521123026 《Java程序设计》第三周学习总结

    1. 本章学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  6. 多线程面试题系列(2): CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  7. 用Beautifulsoup 来爬取贴吧图片

    import urllib.request import bs4 import re import os url="https://tieba.baidu.com/p/1988291937? ...

  8. jz2440重新分区

    在购买开发板的时候,板子上已经烧写好了bootloader.内核和文件系统.但是在具体使用时,发现板子上划分的内核分区只有2M,但是我编译出来的内核大于2M,于是将内核烧写到nandflash上面时会 ...

  9. jmeter 压测最近的心得体会

    笔者14年入坑测试,截止到17年年初一直在游戏公司,压测,我都没有怎么用过,特别是jmeter去压测,自己学习,可是先找到切入点,于是乎, 其实也算是我学习后,先找一个更大的平台吧,我聊了几个游戏公司 ...

  10. Spring 使用AspectJ的三种方式

    Spring 使用AspectJ 的三种方式 一,使用JavaConfig 二,使用注解隐式配置 三,使用XML 配置 背景知识: 注意 使用AspectJ 的 时候 要导入相应的Jar 包 嗯 昨天 ...