最近由于客户需要对grid进行大量的检索操作,而现有的grid数据是以分页的形式从数据库端获取,每次检索都需要重新进行获取,效率很低.

因而将数据进行一次加载,每次的检索操作在前台extjs进行过滤,效果就能得到很大的提升.(节约了每次与服务器的交互时间,但数据渲染所消耗时间无法缩短,因浏览器而议)

首先根据需求将grid的store改为加载全部数据

var testItemStore = new Ext.data.JsonStore({
        root:'datas',
        //不分页,总数据量可以不要
        //totalProperty:'sum',
        url:'<%=basePath%>item/testItem!getList.action',
        idProperty:'id',
        fields:[{name:'id'},{name:'businessType'},{name:'businessTypeCode'},{name:'itemDesc'},
                {name:'unit'},{name:'unitCode'},{name:'charge'},{name:'oftenGroup'},
                {name:'oftenGroupCode'},{name:'note'},{name:'sum'},{name:'subtotal'},
                {name:'briefCode'},{name:'code'}]
    });
    testItemStore.load();
    
在grid的tbar中添加检索框,我这里需要的是根据store中briefCode信息进行检索
    var select_id = {
        xtype:'textfield',
        width:120,
        emptyText:'简码',
        inputType:'text',
        invalidText:'error',
        id:'select_testItem_briefCode',
        //开启键盘监听
        enableKeyEvents:true,
        listeners:{
            //键盘按键监听
            keyup:function(field, e){
                var data = field.getValue();
                //store的过滤
                testItemStore.filter('briefCode',data,true,false);
            }
        }
    };
    
Store中filter(String|Array field, String|RegExp value, [Boolean anyMatch], [Boolean caseSensitive], [Boolean exactMatch])

根据指定的参数过滤records。可以选择传递一个过滤选项数组,根据多个参数过滤。
单个过滤器示例:store.filter('name', 'Ed', true, true); //查找所有records中name包含'Ed'子串的记录
                                                         //anyMatch可选,默认为true,caseSensitive可选,默认为true
多个过滤器示例:store.filter([{property:'name',value:'Ed',anyMatch:true,caseSensitive:true},{fn:function(record){return record.get('age') == 24},scope: this}]);
参数
    field:String|Array
        你的数据记录的一个属性,或者一个包含多个过滤条件的数组
    value:String/RegExp
        要么是一个属性名的起始字符串,么是一个需要在属性上进行测试的 正则表达式
    anyMatch:Boolean
        (可选)true时将全字匹配,而不仅仅是匹配起始字符串
    caseSensitive:Boolean
        (可选)true比较时将会对大小写敏感
    exactMatch:Boolean
        true将会强制精确匹配(在正则中添加^和$字符).默认为fales.如果anyMatch参数为true,忽略此配置。

store前台数据过滤的更多相关文章

  1. ABP框架 - 数据过滤

    文档目录 本节内容: 简介 预定义过滤 ISoftDelete 何时可用? IMustHaveTenant 何时可用? IMayHaveTenant 何时可用? 禁用过滤 关于using声明 关于多租 ...

  2. C#实现通用数据过滤窗体

    最近一直在做WINFORM项目,所以经常有些新的想法或尝试与大家分享,之前与大家分享了通用窗体遮罩层.通用可附加数据绑定的DataGridView.窗体渐显,今天来分享一个大家在其它软件中常见的功能: ...

  3. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  4. php数据过滤函数与方法示例【转载】

    1.php提交数据过滤的基本原则 1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了.其实在涉及到变量取值时,intval( ...

  5. PHP数据过滤

    1.php提交数据过滤的基本原则  1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了.其实在涉及到变量取值时,intval ...

  6. SQL学习之高级数据过滤

    一.高级数据过滤之IN操作符 IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配.IN取一组由逗号分隔.括在圆括号中的合法值.代码如下: select ItemId,ItemName,Che ...

  7. FastReport 数据过滤

    FastReport 数据过滤 在DataBind 的 OnBeforePrint 设置条件   例:显示 大于0 的数据 procedure MasterData1OnBeforePrint(Sen ...

  8. .NET WinForm程序中给DataGridView表头添加下拉列表实现数据过滤

    转:http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能,可以通过点击表头上的下拉列表来实现数据的 ...

  9. ABP文档笔记 - 数据过滤

    预定义的过滤 ISoftDelete 软删除过滤用来在查询数据库时,自动过滤(从结果中抽取)已删除的实体.如果一个实体可以被软删除,它必须实现ISoftDelete接口,该接口只定义了一个IsDele ...

随机推荐

  1. Highcharts动态添加点数据

    Highcharts用来作为图表数据的展示十分方便,效果也比较好.highcharts不仅可以实现死数据的展示,也能实现动态数据的实时添加显示,类似财经股票的实时刷新效果,实现过程并不难,大致如下. ...

  2. Treap

    treap模板 期望复杂度为O(nlogn) 带合并的treap期望复杂度为O(nlognlogn) #include <bits/stdc++.h> ; struct tree{ int ...

  3. HTML 与 css 的简单学习

    第21课: 内联元素,又称为行内元素,主要来控制一行内的字: 如: span,不是独占一行,不能设置宽高,竖直方向上不能设置 margin与 pading的值,不过水平方向上可以设置哦.(因为它只在一 ...

  4. Nginx

    Nginx的常识 1.nginx三大功能:(百万级别繁忙服务器占有率) 1)web服务器 轻量级,处理的并发量更大. 2)反向代理服务器 通过将用户端的请求,透明的转送给应用服务器.这样所 有的客户端 ...

  5. File system needs to be upgraded. You have version null and I want version 7

    安装hbase时候报错: File system needs to be upgraded. You have version null and I want version 7 注: 我安装的hba ...

  6. $.unique()去重问题

    var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010);$.unique(yearArray); 返回 2009, 2010, 20 ...

  7. java:经典消费生成者

    产品类: public class Info { private String title = "生产"; private String content = "生产罐头& ...

  8. shell下>和>>的区别

    >  :如果文件不存在,同上,如果文件存在,先将文件清空,然后将数据填入此文件 >> :如果文件不存在,将创建新的文件,并将数据送至此文件:如果文件存在,则将数据添加在文件后面

  9. MySQL TCL 整理

    TCL(Transaction Control Language)事务控制语言SAVEPOINT 设置保存点ROLLBACK  回滚SET TRANSACTION

  10. HTML5中引入的关键特性

    新特性 描述 accesskey 定义通过键盘访问元素的快捷键 contenteditable 该特性设置为true时,浏览器应该允许用户编辑元素的内容.不指定变化后的内容如何保存 contextme ...