转载:http://blog.csdn.net/zyujie/article/details/16362747

最近用Ext4.1自己做了做项目的练习:把一些知识点,在这里记录下来了!

上面一个form表单,用作添加用户信息,包含了一些验证技巧。下面是一个带查询参数的分页Grid。

[javascript] view plaincopy
  1. /**预加载的组件**/
  2. Ext.require([
  3. 'Ext.grid.*',
  4. 'Ext.data.*',
  5. 'Ext.util.*',
  6. 'Ext.toolbar.Paging',
  7. 'Ext.ModelManager',
  8. 'Ext.tip.QuickTipManager',
  9. 'Ext.layout.container.Border'
  10. ]);
  11. Ext.onReady(function(){
  12. Ext.Ajax.timeout = 60000; // 60秒
  13. var pageSize = 10;
  14. //自定义正则表达式验证
  15. Ext.apply(Ext.form.VTypes,{
  16. phonecheck : function(val) {
  17. return /(^[1][358][0-9]{9}$)/.test(val);
  18. },
  19. phonecheckText : "号码不匹配!"
  20. },{
  21. usercheck : function(val) {
  22. //var reg = /(^[1][358][0-9]{9}$)/;
  23. //if(reg.test(val)==false){
  24. //  return false;
  25. //}
  26. return /^[a-z]+$/.test(val);
  27. },
  28. usercheckText : "格式不正确,只接受小写字母!"
  29. });
  30. var form = Ext.create('Ext.form.Panel', {
  31. id:'userForm',
  32. title:'添加系统用户',
  33. layout: 'column',
  34. defaultType: 'textfield',
  35. width: '100%',
  36. height: 140,
  37. bodyStyle: 'padding:5px',
  38. animCollapse:true,
  39. region : 'north',
  40. collapsible:true,
  41. border: true,
  42. frame: true,
  43. plan: true,
  44. items: [{
  45. columnWidth: .3,
  46. id:'userId',
  47. name:'userId',
  48. fieldLabel: '用户编号',
  49. fieldWidth: 30,
  50. labelStyle : "text-align:right;width:30;padding-right:10px;",
  51. blankText: '请输入用户编号',
  52. allowBlank: false,
  53. maxLength:18,
  54. minLength:5,
  55. vtype:'usercheck'
  56. },{
  57. id:'userName',
  58. name:'userName',
  59. fieldLabel: '用户姓名',
  60. fieldWidth: 30,
  61. labelStyle : "text-align:right;width:30;padding-right:10px;",
  62. blankText: '请输入用户名',
  63. allowBlank: false,
  64. maxLength:18,
  65. minLength:5,
  66. columnWidth: .3
  67. },{
  68. id:'password',
  69. name:'password',
  70. fieldLabel: '密码',
  71. fieldWidth: 30,
  72. inputType:'password',
  73. labelStyle : "text-align:right;width:30;padding-right:10px;",
  74. blankText: '请输入密码',
  75. allowBlank: false,
  76. columnWidth: .3
  77. },{
  78. id:'userMail',
  79. name:'userMail',
  80. fieldLabel: '电子邮箱',
  81. fieldWidth: 30,
  82. labelStyle : "text-align:right;width:30;padding-right:10px;",
  83. blankText: '请输入电子邮箱',
  84. allowBlank: false,
  85. vtype: 'email',
  86. style: {
  87. marginTop: '10px'
  88. },
  89. columnWidth: .3
  90. },{
  91. id:'phoneno',
  92. name:'phoneno',
  93. fieldLabel: '手机号',
  94. fieldWidth: 30,
  95. labelStyle : "text-align:right;width:30;padding-right:10px;",
  96. blankText: '请输入手机号',
  97. allowBlank: false,
  98. vtype:'phonecheck',
  99. style: {
  100. marginTop: '10px'
  101. },
  102. columnWidth: .3
  103. },{
  104. id:'remark',
  105. name:'remark',
  106. fieldLabel: '备注信息',
  107. fieldWidth: 30,
  108. labelStyle : "text-align:right;width:30;padding-right:10px;",
  109. blankText: '请输入备注信息',
  110. allowBlank: true,
  111. style: {
  112. marginTop: '10px'
  113. },
  114. columnWidth: .3
  115. }],
  116. buttons: ['->', {
  117. text: '添加用户',
  118. iconCls: 'icon-add',
  119. formBind: true,
  120. handler:function(){
  121. var form = Ext.getCmp('userForm').getForm();
  122. if(form.isValid()){
  123. form.submit({
  124. url: '/mymis/system/userinfo/addUserInfo.action',
  125. method:'post',
  126. waitTitle: "请稍候",
  127. waitMsg : '提交数据,请稍候...',
  128. success: function(form, action) {
  129. Ext.Msg.alert('Success', '保存成功!');
  130. var flag = action.result.reason;
  131. if(flag == "exists"){
  132. Ext.Msg.alert('警告', '系统中已存该用户编号,请重新输入!');
  133. }else{
  134. Ext.Msg.alert('提示', '用户信息成功添加!');
  135. var grid = Ext.getCmp("myGrid");
  136. var store = grid.getStore();
  137. store.load({ params: { start: 0, limit: pageSize} });
  138. grid.reconfigure();
  139. }
  140. },
  141. failure: function(form, action) {
  142. Ext.Msg.alert('错误', '用户信息添加失败,请联系管理员!');
  143. }
  144. });
  145. }
  146. }
  147. },'-',{
  148. text: '重  置',
  149. iconCls: 'icon-reset',
  150. handler:function(){
  151. Ext.getCmp('userForm').getForm().reset();
  152. }
  153. }]
  154. });
  155. /**grid**/
  156. Ext.define('MsgList', {
  157. extend: 'Ext.data.Model',
  158. fields: [
  159. {name: 'USER_ID',  type: 'string'},
  160. {name: 'USER_NAME',  type: 'string'},
  161. {name: 'USER_MAIL',  type: 'string'},
  162. {name: 'PHONE_NO',  type: 'string'}
  163. ],
  164. });
  165. var myStore = Ext.create('Ext.data.Store', {
  166. id:'myStore',
  167. model: 'MsgList',
  168. pageSize:pageSize,
  169. autoLoad: true,
  170. remoteSort: true,
  171. proxy: {
  172. type: 'ajax',
  173. url : '/mymis/system/userinfo/queryUserInfo.action',
  174. reader: {
  175. type: 'json',
  176. root: 'rows',
  177. totalProperty: 'total'
  178. },
  179. simpleSortMode: true
  180. },
  181. });
  182. var titleBar = Ext.create('Ext.toolbar.Toolbar', {
  183. renderTo: Ext.getBody(),
  184. width : 600,
  185. layout: {
  186. overflowHandler: 'Menu'
  187. },
  188. items: [{
  189. xtype:'textfield',
  190. id:'searchMsg',
  191. name: 'searchMsg',
  192. fieldLabel: '请输入查询条件',
  193. allowBlank: true
  194. },'-',{
  195. xtype:'button',
  196. text:'查询',
  197. iconCls: 'icon-search-form',
  198. handler: function(){
  199. var txtSearch = Ext.String.trim(Ext.getCmp("searchMsg").getValue());
  200. var grid = Ext.getCmp("myGrid");
  201. var store = grid.getStore();
  202. //var pagingTB = Ext.getCmp("pagingBT");
  203. store.load({ params: { start: 0, limit: pageSize,searchMsg: txtSearch} });
  204. grid.reconfigure();
  205. //alert(pagingTB);
  206. //pagingTB.doRefresh();
  207. }
  208. }]
  209. });
  210. var grid = Ext.create('Ext.grid.Panel', {
  211. id:'myGrid',
  212. tbar:titleBar,
  213. store: myStore,
  214. frame: true,
  215. region:'center',
  216. border: true,
  217. split: true,
  218. loadMask:{msg:"数据加载中,请稍等..."},
  219. //collapsible: true,
  220. //autoHeight : true,
  221. columns: [
  222. { header: '编号', dataIndex: 'USER_ID', flex: 2 },
  223. { header: '姓名', dataIndex: 'USER_NAME', flex: 6 },
  224. { header: '邮箱', dataIndex: 'USER_MAIL', flex: 3 },
  225. { header: '手机号', dataIndex: 'PHONE_NO', flex: 3 }
  226. ],
  227. //features: [{ftype:'grouping'}],
  228. width: '100%',
  229. height: Ext.getBody().getHeight() - 140,
  230. //loadMask: true,
  231. bbar: Ext.create('Ext.PagingToolbar', {
  232. id:'pagingBT',
  233. store: myStore,
  234. displayInfo: true,
  235. displayMsg: '显示 第 {0} - {1} 条记录 一共 {2} 条记录',
  236. emptyMsg: "没有一第记录显示"
  237. })
  238. });
  239. Ext.create('Ext.container.Viewport',{
  240. layout : 'border',
  241. items : [form,grid]
  242. });
  243. //带自定义参数的分页
  244. myStore.on('beforeload', function (store, options) {
  245. var searchMsg = Ext.getCmp('searchMsg').getValue();
  246. Ext.apply(store.proxy.extraParams, {searchMsg: searchMsg});
  247. });
  248. myStore.load({ params: { start: 0, limit: pageSize} });
  249. });

添加用户的Form表单提交Action:

Ext4.1 Grid 分页查询的更多相关文章

  1. Ext4.2 grid 条件查询使用

    项目中用到Ext4.2,初次接触,用的不是太熟,做个总结,恳请指正! 1.grid重新设置条件,查询结果不是从第1页开始 在处理grid条件查询时,点击搜索按钮调用store.load()方法时,会把 ...

  2. [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)

    先看图: 页面js代码: var userStore=Ext.create('Ext.data.Store', { storeId:'userStore', fields:['uname', 'ema ...

  3. dhtmlxGrid分页查询,条件查询实例

    使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中. 引入所需文件: <script>window.dhx_globalImgPath = ...

  4. EasyUi+Spring Data 实现按条件分页查询

    Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...

  5. JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能

    1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...

  6. JAVAEE——BOS物流项目06:分页查询、分区导出Excel文件、定区添加、分页问题总结

    1 学习计划 1.分区组合条件分页查询 n 分区分页查询(没有过滤条件) n 分区分页查询(带有过滤条件) 2.分区导出 n 页面调整 n 使用POI将数据写到Excel文件 n 通过输出流进行文件下 ...

  7. 一个共通的viewModel搞定所有的分页查询一览及数据导出(easyui + knockoutjs + mvc4.0)

    前言 大家看标题就明白了我想写什么了,在做企业信息化系统中可能大家写的最多的一种页面就是查询页面了.其实每个查询页面,除了条件不太一样,数据不太一样,其它的其实都差不多.所以我就想提取一些共通的东西出 ...

  8. 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询

    查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ...

  9. SSH——基于datagrid实现分页查询

    1. 修改页面中datagrid的URL地址,访问action // 取派员信息表格 $('#grid').datagrid( { iconCls : 'icon-forward', fit : tr ...

随机推荐

  1. 协程coroutine

    协程(coroutine)顾名思义就是“协作的例程”(co-operative routines).跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程 ...

  2. C#验证码使用

    1.C#创建验证码 1.1 创建获取验证码页面(ValidateCode.aspx) <html xmlns="http://www.w3.org/1999/xhtml"&g ...

  3. [LeetCode#154]Find Minimum in Rotated Sorted Array II

    The question: Follow up for "Find Minimum in Rotated Sorted Array":What if duplicates are ...

  4. 输出password

  5. (转载)mysql查询今天、昨天、7天、近30天、本月、上一月数据

    (转载)http://blog.163.com/dreamman_yx/blog/static/26526894201053115622827/ 查询 今天 select * from 表名 wher ...

  6. 数据结构(RMQ):UVAoj 11235 Frequent values

    Frequent values You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. I ...

  7. Android 安全测试

    文章Android Security Tools对1~4的使用有介绍,下面主要分析其源码实现. 1.Manifest Explorer 2.Package Play Main.java public ...

  8. JavaScript中的声明提升

    JavaScript中变量或者函数的声明会被提升(赋值语句不会被提升)到当前函数主体的顶部,不管这个声明是否出现在不可到达的地方. var test = 1; function f() { if(!t ...

  9. Timeout for tests

    如果想把timeout太久的测试自动标记为失败,有两种方法: 1.在 @Test里加上 Timeout 参数 定义"timeout=1000“的话,如果超过1000 毫秒,failure会被 ...

  10. Java运行环境的配置(JDK和JRE)

    Jdk 表示java开发环境,包含开发环境和运行环境 Jre 表示java运行环境 JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发 ...