Ext4.1 Grid 分页查询
转载:http://blog.csdn.net/zyujie/article/details/16362747
最近用Ext4.1自己做了做项目的练习:把一些知识点,在这里记录下来了!
上面一个form表单,用作添加用户信息,包含了一些验证技巧。下面是一个带查询参数的分页Grid。
- /**预加载的组件**/
- Ext.require([
- 'Ext.grid.*',
- 'Ext.data.*',
- 'Ext.util.*',
- 'Ext.toolbar.Paging',
- 'Ext.ModelManager',
- 'Ext.tip.QuickTipManager',
- 'Ext.layout.container.Border'
- ]);
- Ext.onReady(function(){
- Ext.Ajax.timeout = 60000; // 60秒
- var pageSize = 10;
- //自定义正则表达式验证
- Ext.apply(Ext.form.VTypes,{
- phonecheck : function(val) {
- return /(^[1][358][0-9]{9}$)/.test(val);
- },
- phonecheckText : "号码不匹配!"
- },{
- usercheck : function(val) {
- //var reg = /(^[1][358][0-9]{9}$)/;
- //if(reg.test(val)==false){
- // return false;
- //}
- return /^[a-z]+$/.test(val);
- },
- usercheckText : "格式不正确,只接受小写字母!"
- });
- var form = Ext.create('Ext.form.Panel', {
- id:'userForm',
- title:'添加系统用户',
- layout: 'column',
- defaultType: 'textfield',
- width: '100%',
- height: 140,
- bodyStyle: 'padding:5px',
- animCollapse:true,
- region : 'north',
- collapsible:true,
- border: true,
- frame: true,
- plan: true,
- items: [{
- columnWidth: .3,
- id:'userId',
- name:'userId',
- fieldLabel: '用户编号',
- fieldWidth: 30,
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入用户编号',
- allowBlank: false,
- maxLength:18,
- minLength:5,
- vtype:'usercheck'
- },{
- id:'userName',
- name:'userName',
- fieldLabel: '用户姓名',
- fieldWidth: 30,
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入用户名',
- allowBlank: false,
- maxLength:18,
- minLength:5,
- columnWidth: .3
- },{
- id:'password',
- name:'password',
- fieldLabel: '密码',
- fieldWidth: 30,
- inputType:'password',
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入密码',
- allowBlank: false,
- columnWidth: .3
- },{
- id:'userMail',
- name:'userMail',
- fieldLabel: '电子邮箱',
- fieldWidth: 30,
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入电子邮箱',
- allowBlank: false,
- vtype: 'email',
- style: {
- marginTop: '10px'
- },
- columnWidth: .3
- },{
- id:'phoneno',
- name:'phoneno',
- fieldLabel: '手机号',
- fieldWidth: 30,
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入手机号',
- allowBlank: false,
- vtype:'phonecheck',
- style: {
- marginTop: '10px'
- },
- columnWidth: .3
- },{
- id:'remark',
- name:'remark',
- fieldLabel: '备注信息',
- fieldWidth: 30,
- labelStyle : "text-align:right;width:30;padding-right:10px;",
- blankText: '请输入备注信息',
- allowBlank: true,
- style: {
- marginTop: '10px'
- },
- columnWidth: .3
- }],
- buttons: ['->', {
- text: '添加用户',
- iconCls: 'icon-add',
- formBind: true,
- handler:function(){
- var form = Ext.getCmp('userForm').getForm();
- if(form.isValid()){
- form.submit({
- url: '/mymis/system/userinfo/addUserInfo.action',
- method:'post',
- waitTitle: "请稍候",
- waitMsg : '提交数据,请稍候...',
- success: function(form, action) {
- Ext.Msg.alert('Success', '保存成功!');
- var flag = action.result.reason;
- if(flag == "exists"){
- Ext.Msg.alert('警告', '系统中已存该用户编号,请重新输入!');
- }else{
- Ext.Msg.alert('提示', '用户信息成功添加!');
- var grid = Ext.getCmp("myGrid");
- var store = grid.getStore();
- store.load({ params: { start: 0, limit: pageSize} });
- grid.reconfigure();
- }
- },
- failure: function(form, action) {
- Ext.Msg.alert('错误', '用户信息添加失败,请联系管理员!');
- }
- });
- }
- }
- },'-',{
- text: '重 置',
- iconCls: 'icon-reset',
- handler:function(){
- Ext.getCmp('userForm').getForm().reset();
- }
- }]
- });
- /**grid**/
- Ext.define('MsgList', {
- extend: 'Ext.data.Model',
- fields: [
- {name: 'USER_ID', type: 'string'},
- {name: 'USER_NAME', type: 'string'},
- {name: 'USER_MAIL', type: 'string'},
- {name: 'PHONE_NO', type: 'string'}
- ],
- });
- var myStore = Ext.create('Ext.data.Store', {
- id:'myStore',
- model: 'MsgList',
- pageSize:pageSize,
- autoLoad: true,
- remoteSort: true,
- proxy: {
- type: 'ajax',
- url : '/mymis/system/userinfo/queryUserInfo.action',
- reader: {
- type: 'json',
- root: 'rows',
- totalProperty: 'total'
- },
- simpleSortMode: true
- },
- });
- var titleBar = Ext.create('Ext.toolbar.Toolbar', {
- renderTo: Ext.getBody(),
- width : 600,
- layout: {
- overflowHandler: 'Menu'
- },
- items: [{
- xtype:'textfield',
- id:'searchMsg',
- name: 'searchMsg',
- fieldLabel: '请输入查询条件',
- allowBlank: true
- },'-',{
- xtype:'button',
- text:'查询',
- iconCls: 'icon-search-form',
- handler: function(){
- var txtSearch = Ext.String.trim(Ext.getCmp("searchMsg").getValue());
- var grid = Ext.getCmp("myGrid");
- var store = grid.getStore();
- //var pagingTB = Ext.getCmp("pagingBT");
- store.load({ params: { start: 0, limit: pageSize,searchMsg: txtSearch} });
- grid.reconfigure();
- //alert(pagingTB);
- //pagingTB.doRefresh();
- }
- }]
- });
- var grid = Ext.create('Ext.grid.Panel', {
- id:'myGrid',
- tbar:titleBar,
- store: myStore,
- frame: true,
- region:'center',
- border: true,
- split: true,
- loadMask:{msg:"数据加载中,请稍等..."},
- //collapsible: true,
- //autoHeight : true,
- columns: [
- { header: '编号', dataIndex: 'USER_ID', flex: 2 },
- { header: '姓名', dataIndex: 'USER_NAME', flex: 6 },
- { header: '邮箱', dataIndex: 'USER_MAIL', flex: 3 },
- { header: '手机号', dataIndex: 'PHONE_NO', flex: 3 }
- ],
- //features: [{ftype:'grouping'}],
- width: '100%',
- height: Ext.getBody().getHeight() - 140,
- //loadMask: true,
- bbar: Ext.create('Ext.PagingToolbar', {
- id:'pagingBT',
- store: myStore,
- displayInfo: true,
- displayMsg: '显示 第 {0} - {1} 条记录 一共 {2} 条记录',
- emptyMsg: "没有一第记录显示"
- })
- });
- Ext.create('Ext.container.Viewport',{
- layout : 'border',
- items : [form,grid]
- });
- //带自定义参数的分页
- myStore.on('beforeload', function (store, options) {
- var searchMsg = Ext.getCmp('searchMsg').getValue();
- Ext.apply(store.proxy.extraParams, {searchMsg: searchMsg});
- });
- myStore.load({ params: { start: 0, limit: pageSize} });
- });
添加用户的Form表单提交Action:
Ext4.1 Grid 分页查询的更多相关文章
- Ext4.2 grid 条件查询使用
项目中用到Ext4.2,初次接触,用的不是太熟,做个总结,恳请指正! 1.grid重新设置条件,查询结果不是从第1页开始 在处理grid条件查询时,点击搜索按钮调用store.load()方法时,会把 ...
- [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)
先看图: 页面js代码: var userStore=Ext.create('Ext.data.Store', { storeId:'userStore', fields:['uname', 'ema ...
- dhtmlxGrid分页查询,条件查询实例
使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中. 引入所需文件: <script>window.dhx_globalImgPath = ...
- EasyUi+Spring Data 实现按条件分页查询
Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...
- JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能
1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...
- JAVAEE——BOS物流项目06:分页查询、分区导出Excel文件、定区添加、分页问题总结
1 学习计划 1.分区组合条件分页查询 n 分区分页查询(没有过滤条件) n 分区分页查询(带有过滤条件) 2.分区导出 n 页面调整 n 使用POI将数据写到Excel文件 n 通过输出流进行文件下 ...
- 一个共通的viewModel搞定所有的分页查询一览及数据导出(easyui + knockoutjs + mvc4.0)
前言 大家看标题就明白了我想写什么了,在做企业信息化系统中可能大家写的最多的一种页面就是查询页面了.其实每个查询页面,除了条件不太一样,数据不太一样,其它的其实都差不多.所以我就想提取一些共通的东西出 ...
- 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ...
- SSH——基于datagrid实现分页查询
1. 修改页面中datagrid的URL地址,访问action // 取派员信息表格 $('#grid').datagrid( { iconCls : 'icon-forward', fit : tr ...
随机推荐
- 谈谈react-router学习
源网页 http://qiutc.me/post/%E8%B0%88%E8%B0%88-react-router.html React + webpack 爽的飞起,少了点什么. 多页面,每次请求页面 ...
- 图片的css自适应
当需要css来缩放图片的时候,可以采用外层容器100%或者任意百分比, 内层图片img tag 没有宽高,用sass写经过断点后的mixin中的样式就是这样: .workscon_section{ w ...
- QS Network
zoj1586:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586 题目大意:最小生成树,不只算两点之间的费用,还要算点 ...
- Data 语义学(2)
四."继承"与 Data Member (1). 只有继承没有多态 先来看个例子 #include <iostream> using namespace std; cl ...
- HDU 3829 Cat VS Dog(最大独立集)
题目大意: 有n只猫,有m只狗.现在有P个学生去参观动物园.每个孩子有喜欢的动物和不喜欢的动物.假如他喜欢猫那么他就一定不喜欢狗(反之亦然). 如果一个孩子喜欢一个动物,那么这个动物不会被移除,若是不 ...
- 最近 弄了一个 discuz 7.2,管理员发帖 会出现 很多错误,解决 办法 在别的帖子中找到了
公司弄了一个网站,是php 的 还要有 论坛,然后配置论坛配置 了 好几天,然后好不容易配置上了,发现以管理员 发帖 的时候, 页面就会出现 各种错误,各种 警告 解决办法 是,在bbs 文件夹 里 ...
- C字符数组及其应用
1.字符数组和其他数值类型的数组的定义引用和初始化都是相同的. 特别注意的是: 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串. \0'是由C编译系统自动加上的. 2. C语言允许 ...
- poj2774 Long Long Message(后缀数组)
[题目链接] http://poj.org/problem?id=2774 [题意] A & B的最长公共子序列. [思路] 拼接+height数组.将AB拼接成一个形如A$B的串,枚举hei ...
- Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二
准备工作:新建第一个JavaWeb项目 step3 给第一次配置tomcat的家伙们再说一遍如何配置tomcat 3.1 [Run]-[Edit Configurations] 3.2 [Defaul ...
- Jenkins 十二: 集成 selenium 测试
我的selenium采用的是python版本. 其实 selenium java版本也类似. 1. 在jenkins里面新建selenium 测试项目. 源码管理采用 “Subversion”,输入 ...
