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 ...
随机推荐
- Dao 处理
1. 写一个基础的接口和类来做基本的操作 /** * */ package com.wolfgang.dao; import java.util.List; /** * @author Adminis ...
- java interface
- java 动态代理深度学习(Proxy,InvocationHandler),含$Proxy0源码
java 动态代理深度学习, 一.相关类及其方法: java.lang.reflect.Proxy,Proxy 提供用于创建动态代理类和实例的静态方法.newProxyInstance()返回一个指定 ...
- Hibernate 配置详解(2)
6) hibernate.session_factory_name: 配置一个JNDI名称,通过Configuration对象创建的SessionFactory会绑定到JNDI下该名称中.一般名字格式 ...
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
- A Simple problem
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2497 题意:给出顶点数,边数及节点s,判断s是 ...
- linux(ubuntu)下分区和格式化sd卡
我的手机sd卡需要分成两个分区,在windowxp下面死活搞不成.主要的问题是,window只认识sd卡的第一个分区.有人用修改驱动程序,让windows把sd卡认成日立的microdisk,分区和格 ...
- vim 的升级 安装 重装
转载自http://blog.chinaunix.net/uid-22891521-id-2109310.html 由于一直以来在一个很old的linux版本下搞开发,里面的vim固然也是一个很old ...
- UVa1349 Optimal Bus Route Design(二分图最佳完美匹配)
UVA - 1349 Optimal Bus Route Design Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- JavaScript中的声明提升
JavaScript中变量或者函数的声明会被提升(赋值语句不会被提升)到当前函数主体的顶部,不管这个声明是否出现在不可到达的地方. var test = 1; function f() { if(!t ...