Extjs6(五)——写一个包含toolbar、form、grid的子页面
本文基于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的子页面的更多相关文章
- Extjs6(三)——用extjs6.0写一个简单页面
		
本文基于ext-6.0.0 一.关于border布局 在用ext做项目的过程中,最常用到的一种布局就是border布局,现在要写的这个简单页面也是运用border布局来做.border布局将页面分为五 ...
 - 用extjs6.0写一个点击新建窗口的功能
		
一.写一个按钮 注意id { id: 'ListEdit', text:'编辑', iconCls:'x-fa fa-edit' } 二.写新建的页面 下面我新建的是表单,有几点需要注意的: ① 因为 ...
 - Extjs6(二)——用extjs6.0写一个系统登录及注销
		
本文基于ext-6.0.0 一.写login页 1.在view文件夹中创建login文件夹,在login中创建文件login.js和loginController.js(login.js放在class ...
 - 写一个简单的form表单,当光标离开表单的时候表单的值发送给后台
		
<body> <form action="index.php"> <input type="text" name="tx ...
 - iframe弹出层中关闭包含iframe的div(子页面调用父页面js函数)
		
父页面: <div id="win2" style=" width:300px; height:200px; border:1px solid red;" ...
 - python写一个信息收集四大件的脚本
		
0x0前言: 带来一首小歌: 之前看了小迪老师讲的课,仔细做了些笔记 然后打算将其写成一个脚本. 0x01准备: requests模块 socket模块 optparser模块 time模块 0x02 ...
 - AngularJS中巧用ngModel的$asyncValidators属性写一个验证唯一性的Direcitve
		
有这样的一个需求:添加用户的时候,根据主键判断当前添加用户的email是否已经被使用. 为此,我们需要把主键和email来传递给远程的一个API,让API返回结果,告之当前email是否被使用过. 写 ...
 - Extjs6(四)——侧边栏导航根据路由跳转页面
		
本文基于ext-6.0.0 之前做的时候这个侧边栏导航是通过tab切换来切换页面的,但是总感觉不太对劲,现在终于发现怎么通过路由跳转了,分享给大家,可能有些不完善的地方,望大家读后可以给些指点.欢迎留 ...
 - 使用form 组件写一个用户注册,并用 bootstrap渲染
		
需求:使用form组件,写一个用户注册系统,包含用户名, 密码, 确认密码,手机号,性别,爱好,注册.并用bootsrap渲染,成果如下: 首先创建一个django 项目.然后在连接pymysql数据 ...
 
随机推荐
- 团队作业8----第二次项目冲刺(beta阶段)5.20
			
Day2--5.20 1.每日讨论 会议内容:1.新成员乔桦和周迪慢慢了解项目. 2.组内负责主要编程的益靖对代码进行了大概的说明. 3.对昨天的工作进行了几点总结. 4.组长对每个成员的任务完成了分 ...
 - 201521123003《Java程序设计》第8周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 我们利用Sca ...
 - 201521123112《Java程序设计》第7周学习总结
			
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 下面先贴出contains的源代码: public boolean cont ...
 - 201521145《Java程序设计》第2周学习总结
			
1. 本章学习总结 掌握了整数类型(byte short int long char),浮点型(float double),布尔型(boolean)的使用,以及它们的包装类Byte Short Int ...
 - 201521123005 《Java程序设计》第1周学习总结
			
1. 本章学习总结 了解JDK/JRE/JVM,学会了如何安装JDK 学会使用控制台和eclipse上运行java代码 了解PTA提交的常见套路 http://www.cnblogs.com/zhrb ...
 - Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)
			
4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本 ...
 - 201521123007《Java程序设计》第14周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
 - 201521123023《Java程序设计》第12周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. (1)File可以表示一个特定文件的名称,也能表示一个目录下的一组文件的名称. (2)继承自InputStre ...
 - 201521123080《Java程序设计》第11周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 多线程: 操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己 ...
 - Java: 类继承中 super关键字
			
super 关键字的作用有两个: 1)在子类中调用超类的构造器,完成实例域参数的初始化,调用构造器的语句只能作为另一个构造器(通常指的是子类构造器)的第一条语句出现, 2)在子类中调用超类的方法,如: ...