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 ...
随机推荐
- JavaScript----Performance Tool and Process
1. Syntax-------------JSLint, JSHint, 2. Combine------------YUI 3. Minify---------------JSMin
- Borg Maze poj 3026
Description The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of ...
- CN消息的来源——父窗口不知道怎么处理,于是把这个消息加上CN_BASE在分发到实际的子窗体
VCL存在一些非API消息以供其内部使用,为什么要这样做呢?这要从WM_COMMAND & WM_NOTIFY消息说起,我们说WM_COMMAND消息并不是直接发给实际产生消息的窗体,而是发送 ...
- commit日志历史不一致的Git仓库合并
有个项目,用SVN commit的在国内开源中国的码云托管,可以直接Git clone"导出"一个本地的git仓库,我在Github上新建立了一个远程的仓库,准备把在码云上clon ...
- bzoj3531
不难想到树链剖分这题的难点是记录的是路径上宗教相同的点裸的想法是对每一种宗教都开一棵线段树,记录每个点的评级但显然这样会爆空间,仔细分析一下,这些线段树内很多点压根就没用到因此我们考虑对线段树动态开点 ...
- Android数据加密解密
最近项目在维护过程中,估计这一周都会没有什么事情做了.于是开始打量自己做完的这个项目,项目在展示方面乏善可陈,然后仔细的想了想,这个项目的亮点无非就在数据加密和解密这一块了.因为是银行的项目,所以对数 ...
- 不允许从数据类型 nvarchar 到 varbinary 的隐式转换
一:错误截图 二:解决 数据库里面的数据类型错了,应该是varchar,而我选了varbinary.太粗心了!
- QTP自传之录制
录制,是一件吃力不讨好的活.很多人以为录制就是我的主要甚至全部的功能,这是大错特错的.不过,录制功能却是不熟悉我的人了解我的有效途径,是大家学习的有力武器.今天就先从录制功能说起吧. 说到录制,就不得 ...
- MySQL选用可重复读之前一定要想到的事情
原文地址:http://blog.itpub.net/29254281/viewspace-1398273/ MySQL选用可重复读隔离级别之前一定要想到的事情.间隙锁 MySQL在使用之前有三个务必 ...
- Reward(拓扑排序)
http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意: 老板要给n个员工发工资最低工资是888: 但是工人们是有要求的 如果输入 a b 表示a的工资要比 ...
