这学期一直在做一个管理系统,前台用到了ExtJs,现在开始总结这一学期的学习心得,首先我们从Ext.ux.form.SearchField开始讲,因为这个东西一直困扰我好长时间,直到项目结束前几天我才解决这个问题。

首先我们先附上Ext.ux.form.SearchField的源代码:

/*! * Ext JS Library 3.2.0 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.ns('Ext.ux.form'); Ext.ux.form.SearchField = Ext.extend(Ext.form.TwinTriggerField, { initComponent : function(){ Ext.ux.form.SearchField.superclass.initComponent.call(this); this.on('specialkey', function(f, e){ if(e.getKey() == e.ENTER){ this.onTrigger2Click(); } }, this); }, validationEvent:false, validateOnBlur:false, trigger1Class:'x-form-clear-trigger', trigger2Class:'x-form-search-trigger', hideTrigger1:true, width:180, hasSearch : false, paramName : 'query', onTrigger1Click : function(){ if(this.hasSearch){ this.el.dom.value = ''; var o = {start: 0}; this.store.baseParams = this.store.baseParams || {}; this.store.baseParams[this.paramName] = ''; // this.store.reload({params:o}); this.store.reload(); this.triggers[0].hide(); this.hasSearch = false; } }, onTrigger2Click : function(){ var v = this.getRawValue(); if(v.length < 1){ this.onTrigger1Click(); return; } var o = {start: 0}; this.store.baseParams = this.store.baseParams || {}; this.store.baseParams[this.paramName] = v; // this.store.reload({params:o}); this.store.reload(); this.hasSearch = true; this.triggers[0].show(); } });

从源代码中我们看到我注视了一行:

// this.store.reload({params:o});

这个参数是用于分页的,我实际的项目中,分页用到了2个参数,分别是start和limit,但是这里只有start,因此如果reload只传start会报错,而且我通过测试发现,reload方法不需要传递参数,他它自动会使用原来的分页参数start和limit。

看到这个搜索框,我们一般可能会想,这个搜索控件是如何给后台传递参数的呢?从源代码中我们看到有一行

paramName : 'query',

当我们在搜索控件中输入查询条件,这个查询条件会赋值给query,查询条件就是通过这个参数名为query来传递的。我们在后台可以通过以下方式获取搜索条件中的文本:

String query=request.getParameter("query");

得到搜索条件以后我们就可以使用这个搜索条件查询数据库了。

下面我附上前台的ExtJs中使用SearchField的代码。

首先定义工具栏,定义如下:

var toolbar = new Ext.Toolbar( [ {// 创建GridPanel的工具栏组件 text : '新增员工信息', iconCls : 'add', handler : addUser }, { text : '删除员工信息', iconCls : 'remove', handler : deleteUser }, { text : '修改员工信息', iconCls : 'plugin', handler : updateUser } , '-','查询:',' ', new Ext.ux.form.SearchField( { store : userStore, width : 110 }) ]);

然后在grid中使用该工具栏:

var userGrid = new Ext.grid.GridPanel( {// 创建Grid表格组件 applyTo : 'user-grid-div',// 设置表格现实位置 frame : true,// 渲染表格面板 tbar : toolbar,// 设置顶端工具栏 stripeRows : true,// 显示斑马线 autoScroll : true,// 当数据查过表格宽度时,显示滚动条 store : userStore,// 设置表格对应的数据集 viewConfig : {// 自动充满表格 autoFill : true }, sm : sm,// 设置表格复选框 cm : cm,// 设置表格的列 bbar : new Ext.PagingToolbar( { pageSize : 25, store : userStore, displayInfo : true, displayMsg : '显示第{0}条到{1}条记录,一共{2}条记录', emptyMsg : '没有记录' // ,items:['-',new Ext.app.SearchField({store:userStore})] }) });

搜索控件不一定非要放在toolbar上,这个可以根据个人需要设定。

Ext.ux.form.SearchField使用方法相关推荐

  1. ext中引用ux_Ext.ux.form.SearchField使用方法

    这学期一直在做一个管理系统,前台用到了ExtJs,现在开始总结这一学期的学习心得,首先我们从Ext.ux.form.SearchField开始讲,因为这个东西一直困扰我好长时间,直到项目结束前几天我才 ...

  2. Ext.ux.form.SearchField 添加placeholder属性 2016年9月19日

    效果如图: 思路: 设置两个变量,存放input的Id和placeholder值, 根据id更新input的placeholder值. inputId: '', placeholder : '', i ...

  3. ext时间控件Ext.ux.form.DateTimeField和Ext.form.DateField的用法比较

    Ext.ux.form.DateTimeField 页面效果 可以精确到年月日时分秒 var _txtEndTime = new Ext.ux.form.DateTimeField({name: 'e ...

  4. ux.form.field.SearchField 列表、树形菜单查询扩展

    1 //支持bind绑定store 2 //列表搜索扩展,支持本地查询 3 //支持树形菜单本地一级菜单查询 4 Ext.define('ux.form.field.SearchField', { 5 ...

  5. 基于Ext Core的包含校验功能的表单提交扩展Ext.ux.submit

    近期因为工作需要,需要使用 Ext Core ,但是目前 Core 的扩展太少了,尤其是基于表单验证及提交的,基本没有,如果使用 Ext 本身的功能,那么库大小又增加不少.在研究了 Ext.form. ...

  6. ux.form.field.Verify 验证码控件

    1 //验证码控件 2 Ext.define('ux.form.field.Verify', { 3 extend: 'Ext.container.Container', 4 alias: ['wid ...

  7. ux.form.field.Year 只能选年的时间扩展

    效果如图,亲测6.2.1版本可用,用法同时间选择控件 1 //只选择年的控件 2 Ext.define('ux.picker.Year', { 3 extend: 'Ext.Component', 4 ...

  8. Ext.data.SimpleStore的使用方法

    Ext.data.SimpleStore的使用方法 Ext.data.SimpleStore简单数据存储器 参数: data:Array数组类型. fields:数组对应的字段名称. var data ...

  9. ASP.NET使用Coolite.Ext.Web.dll,显示ext未定义的解决方法

    开发系统时用到Coolite.Ext.Web.dll,起初使用Windows Server 2003进行的开发,测试都没有问题.后来装了Windows Server 2008,再进行开发此时是,总显示 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题+中等题(第20期)
  2. 内存错误 处理 [CAlayer release]
  3. Win切换管理员用户
  4. 喜提 redir contributor
  5. C++里数组名+1和数组名的地址+1的区别
  6. python建立多台电脑共用的_用virtualenv建立多个Python独立虚拟开发环境
  7. 从一个数据流中取出中位数
  8. LeetCode 643. Maximum Average Subarray I
  9. 超图Cesium二三维切换
  10. 黄聪:Python初始化系统变量设置
  11. 拓端tecdat|SAS可视化高级ODS图形:PROC SGPLOT,BY组和SG注释
  12. ARM基础相关寄存器的讲解-LPC21XX
  13. ngix请求转发配置
  14. 1. 并行与分布式系统简介
  15. 聚合支付、第四方支付有哪些平台?
  16. 线性代数-矩阵方程应用:配平化学方程式
  17. 错误“ Java:不支持发行版本5”的正确解决方案
  18. 无限乱斗哪个服务器有,《LOL》国服无限乱斗什么时候出 国服2020无限乱斗上线时间...
  19. 游戏服务器——登陆服
  20. spss菜单小介绍【跟阿婷一起学spss 03 在入坑边缘疯狂试探】

热门文章

  1. mysql为什么每天0点就装东西_MySQL的详细安装教程
  2. php 提交的数据覆盖,如何高效的做数据覆盖操作
  3. 某天没有数据能查出来0数量_用Excel对纽约市出租车费数据探索性分析
  4. c语言多线程转python多线程,真正的python 多线程!一个修饰符让你的多线程和C语言一样快...
  5. matlab中卡尔曼滤波,卡尔曼滤波器和matlab代码.doc
  6. 简单分析Flask 数据库迁移详情
  7. Linux 常用的压缩与解压缩命令详解
  8. enumerate在python中的意思_Python中enumerate用法详解
  9. 【树的直径】解题报告: luogu P3629 [APIO2010]巡逻(树的直径,位运算成对变换,思维)
  10. UVA1103 古代象形符号 Ancient Messages解题报告(DFS,字符串)难度⭐⭐⭐⭐