`
langgufu
  • 浏览: 2308957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ext Store Filter的实现和问题(转)

阅读更多

Store包含两个数据缓存 - snapshot和data,grid,combo等控件的显示全部基于data,而snapshot是数据的完整缓存,当首次应用过滤器时,snapshot从data中备份数据,当应用过滤器时,filter从snapshot获取一份完整的数据,并在其中进行过滤,过滤后的结果形成了data并传递给展示,及data总是过滤后的数据,而snapshot总是完整的数据,不过看名字让人误以为它们的作用正好相反。 
相应地,当进行store的增删改时,要同时维护两个缓存。 
问题 
Store包含两个增加Record的方法,即insert和add,其中的insert没有更新snapshot所以当重新应用filter时,即data被重新定义时,在data中使用insert新增的记录是无效的。 
解决方法 
用add不要用insert,如果用insert,记得把数据写进snapshot: store.snapshot.addAll(records)

 

store.data返回的array不能当做数组处理,需要store.data.items[0],data.field,store.data.items才是返回的数组

分享到:
评论

相关推荐

    ext中store的各个应用

    EXT中的Store也支持分页,通过设置store的pageSize和remoteSort、remoteFilter属性,可以实现服务器端的分页和数据过滤。此外,Store还支持数据的实时更新,当服务器端数据发生变化时,通过Store的sync方法可以同步...

    ExtJS Filter 实现表格过滤

    自定义过滤器需要实现`Ext.util.Filter`接口,提供自己的`getFilterFn`方法来定义筛选逻辑。 ### 综合应用 **5. 组合过滤** ExtJS Grid还支持组合过滤,即同时应用多个过滤器,可以通过`filters`配置项定义一组...

    ext grid数据绑定

    在实际开发中,结合EXT提供的事件监听和自定义插件,你可以实现更加复杂和个性化的数据操作逻辑。 综上所述,EXT Grid数据绑定涉及数据模型、视图和数据源的交互,而数据查找和重填则是数据操作的关键步骤。通过...

    EXT2.0 GRID 示例

    3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格中修改数据,这需要结合EditorGridPanel和Form Field组件来实现。 4. **排序和过滤**:GRID可以实现列点击排序,通过配置`sortable`属性和`sortInfo`对象...

    EXT TreeFilter 插件

    EXT TreeFilter插件是EXT库中的一个强大工具,主要用于增强EXT的Tree组件的功能,特别是针对树形结构数据的快速搜索和过滤。EXT Tree是EXT框架中用于展示层次结构数据的组件,它通常用于构建具有多级目录结构的应用...

    EXT 实现省份--城市--地区--级连

    EXT通过其组件系统和数据模型可以轻松地实现这样的功能。 首先,我们需要创建一个EXT的数据模型(Model)来定义省份、城市和地区的结构。每个级别都有一个ID和名称,可能还包含一个父级ID,用于关联上下级关系。...

    根据输入的关键字过滤ext树节点

    3. **添加过滤器**:为了实现动态过滤,我们需要为store添加一个filter配置。可以使用`store.filter()`方法,或者在store配置中设置`autoFilter: true`,然后监听`keyup`事件来实时更新过滤条件。 ```javascript //...

    Ext 3.0源码+典型实例

    在 Ext 3.0 中,可以使用 GridPanel 显示数据,结合 Store 和 Proxy 实现数据的加载和筛选。同时,可以添加过滤器(Filter)或使用远程排序(remoteSort)来处理查询逻辑。 4. **动态树形菜单**:动态树形菜单是...

    Ext常用功能开发总结

    使用`store.load()`方法加载数据,配合`store.filter()`或`grid.getView().refresh()`实现查询。 #### 表格的单击事件 监听`itemclick`事件,可以获取到点击行的数据和索引。 #### 包装表格中的某列 可以使用`...

    ext中combo过滤

    在Ext中,`ComboBox`通过其内部的`Store`来存储和管理数据。当用户在`ComboBox`中输入文本时,可以通过设置特定的事件监听器来触发过滤操作。这通常涉及到对`Store`中的记录进行筛选,只显示符合输入条件的数据项。...

    Ext框架的Grid使用介绍

    4. **功能扩展**:Grid支持分页(paging toolbar)、排序(sorter)、过滤(filter)和锁定列(locking columns)。通过监听事件,可以实现用户交互,如点击事件、编辑事件等。 5. **行操作**:行可以添加、删除、...

    ExtJS grid过滤操作

    - **应用过滤器**:调用`store.filter()`方法,传入过滤配置对象或过滤器数组,应用过滤条件。 - **清除过滤器**:使用`store.clearFilter()`方法可移除所有过滤器,恢复原始数据。 3. **本地过滤** - **Local ...

    extjs的ComboBox 2级联动

    ComboBox由几个关键部分组成,包括store(数据存储)、displayField(显示字段)和valueField(值字段)。Store用于存储选项数据,displayField定义了在下拉列表中显示的字段,而valueField则标识选中项的唯一标识。...

    Ext Js权威指南(.zip.001

    7.5.9 store的过滤:ext.util.filter / 363 7.5.10 store的分组:ext.util.grouper / 363 7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 ...

    Ext JS的table设计实例

    例如,使用`Ext.toolbar.Paging`添加分页工具栏,通过`Ext.grid.filters.Filter`实现行过滤,或者通过`column.renderer`定义自定义单元格样式和内容。这些功能进一步增强了表格的实用性。 总的来说,"Ext JS的table...

    ext 图书管理系统

    2. **数据管理**:系统可能使用EXT的数据存储组件(Store)来管理和加载图书数据,支持本地存储或与服务器进行异步通信(AJAX)。数据可以通过EXT的数据模型(Model)进行结构化,方便操作和验证。 3. **分页与排序...

    ext的grid简易例子

    EXT Grid还可以配合其他组件,如Toolbar、paging bar、filter等,实现更复杂的功能。例如,可以添加一个工具栏来添加、删除或搜索数据,使用分页条来控制数据加载量,或者通过filter进行数据筛选。 总的来说,EXT ...

    Ext combobox 下拉多选框带搜索功能

    this.store.filterBy(function(record) { return record.get('name').indexOf(val) !== -1; }); }; ``` 以上就是关于“Ext combobox 下拉多选框带搜索功能”的核心知识点。通过这些技术,开发者可以创建一个既...

    ext增删改查

    本文将深入探讨如何使用Ext JS来实现基本的数据增删改查(CRUD)操作,特别关注代码示例中的Store和GridPanel组件。 #### Store组件 在Ext JS中,`Store`是负责从服务器获取数据并存储这些数据的核心组件。通过...

    Ext增删改查

    10. **数据代理(Data Proxy)**: Ext.data.Proxy是连接Store和服务器数据的桥梁。它负责发送请求到服务器并处理响应。常用的Proxy有Memory(内存代理), Ajax(AJAX代理)和Rest(REST代理)。 11. **事件监听...

Global site tag (gtag.js) - Google Analytics