`
gagapear
  • 浏览: 10133 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Extjs Store findRecord 查询API

 
阅读更多

下面列举一些实例来说明Store findRecord 这个方法简单使用。

比如你有一个userStore,这时想要去查找一个名字为Felix的user (前提当然是user model得有一个user的field),查询如下:

1
var user = userStore.findRecord('firstName', 'Felix');

上面代码执行的结果返回的是一个Model实例。

再看一个简单实例,需求是得到Felix这个员工的ID号,查询如下:

1
2
3
4
5
6
7
8
9
getUserID : function (name) {
 
  var userStore = this.getUserStore();
 
  var user =  userStore.findRecord('name', 'Felix');
 
  return user.get('id');
 
}

好,这里想说明下findRecord这个方法的一些局限性:

  • 只能找到第一条匹配的record
  • 当前的store如果是被filter过的,则只能在被filter的数据集中去查找匹配的record,而不是最初的store

此外findRecord这个方法有几个参数,这里务必得说明:

  1. fieldName (必选) : 需要作为查询条件的field name
  2. value(必选): 查询的值,与fieldName匹配
  3. startIndex(可选):从store的哪个位置开始查询, 默认值是0
  4. anyMatch(可选): 默认是从第一个字符开始匹配,类似SQL中的‘a%’, 如果设置为True,则是全匹配,类似SQL中的‘%a%’,默认值是false
  5. caseSensitive(可选): 设置为true则开启大小写敏感, 默认值是false
  6. exactMacth(可选): 设置为True是精确查询, 默认是false  (^ and $ characters added to the regex).

针对最后一个参数exactMacth值得注意,如果有个store数据为[['145', 'PO'], ['245', 'SO'], ['1', 'SI']], model为{fieldOid, fieldName}.

这时的需求是要找到fieldOid为1的record的filedName值(正确结果是SI才对)

1
2
3
var field = fieldStore.findRecord('fieldOid', '1');
 
var fieldName = field.get('fieldName');

我们觉得这样应该没问题,可以得到SI这个值,可是结果却是PO,why?

之前发现网上有文章 http://www.2cto.com/kf/201306/218487.html 说这是EXTJS的一个bug,我想应该不是。

 

因为value这个查询是通过正则表达式来做的,所以当1作为value传进去的时候,API用类似SQL ‘a%’表达式做查询,当然145被找到,所以返回的结果是PO。

所以为了精确的查询所要的记录,则需要下面的查询:

1
2
3
var field = fieldStore.findRecord('fieldOid', '1', 0, false, false, true);
 
var fieldName = field.get('fieldName');
分享到:
评论

相关推荐

    extjs_3.4官方离线API

    extjs_3.4官方离线API,方便查询所有组件属性

    ExtJs中Store加载(load)时候提示信息

    以下是对如何在ExtJS中实现Store加载时显示提示信息的详细解析。 ### Store加载时显示提示信息 在ExtJS中,`Store`对象负责从服务器获取数据并存储到客户端,供应用程序使用。为了在加载数据时给用户提供反馈,...

    ExtJS 3.x中文API

    这个“ExtJS 3.x 中文API”压缩包提供了一个中文版的文档,对于那些不熟悉英文或者在没有翻译工具的情况下工作的人来说,是一个非常宝贵的资源。 API(Application Programming Interface)是一系列预先定义的函数...

    EXTjs4.0的store的findRecord的BUG演示代码

    findRecord方法是store对象提供的用于查找数据集合中符合条件的记录的方法。但在这个问题中,我们遇到了一个BUG,即当使用findRecord方法查找ID为1的记录时,如果遇到ID以数字1开头的记录,就会出现问题。 首先,...

    Extjs 4.0中文版API

    Extjs 4.0中文版API

    ExtJs API 3.1.1 3.3.1 2.X

    本压缩包包含的是不同版本的ExtJs API文档,分别是3.1.1、3.3.1和2.X版本。 3.1.1版本的API是英文版,它涵盖了ExtJs的核心功能和组件,包括布局管理、表单元素、数据绑定、事件处理、菜单和工具提示等。在这一版本...

    ExtJS3.0中文API

    绝对的ExtJS3.0中文API,本人在网上找了好久才找到的,在此奉献给大家!!解压后有30多兆!!

    Extjs 中文API文档

    Extjs 中文API文档,有对Extjs相关API的中文说明

    EXTJS3.2-3.3中文API和包

    1. "Ext3.2中文API.CHM" 提供了EXTJS 3.2版本的中文API参考,详细介绍了3.2版中的所有组件、配置项、方法和事件。开发者可以通过这个文档了解如何使用EXTJS 3.2的各个组件,例如Grid、Form、TreePanel等,以及如何...

    extjs四个例子,一个中文API

    新手学习,初学extjs时用刚刚好,里边有三个例子,还有一个我自己写的例子(简单粗暴动态菜单),还有一个中文API

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    中文的Extjs的api手册

    **ExtJS API中文手册**是学习和使用ExtJS的重要参考资料,尤其是在没有英文阅读基础的情况下。手册中涵盖了ExtJS 3.3的所有类、方法、事件、属性和配置选项,对于开发者来说是不可或缺的工具。 1. **组件系统**:...

    ExtJS-6.2.0离线API文档

    ExtJS-6.2.0官方离线API文档

    ExtJs 4 API中文

    ExtJs 4 API 中文

    ExtJS4.x中文API

    extjs4.x中文api 实用比较方便 。

    extJS4.x中文API学习教程

    extJS4.x中文API学习教程,想要学习extjs的童鞋可以下载看看

    ExtJs3.0和2.0中文API

    本压缩包包含了ExtJS 2.0和3.0两个版本的中文API文档,以及对应的中英文对照版CHM文件,对于深入理解和使用ExtJS具有极大的帮助。 在ExtJS 2.0中,核心特性包括: 1. **组件化开发**:ExtJS提供了大量的UI组件,如...

    [免费] extjs 4.2.1 api文档

    extjs 4.2.1 api文档

    extjs4 最新中文API

    最新的extjs4 中文api,学习者的好帮手。

    ExtJS3.1-3.3中文API文档.zip

    这个"ExtJS3.1-3.3中文API文档.zip"包含了从3.1版本到3.3版本的中文API文档,是学习和开发基于ExtJS应用的重要参考资料。 中文API文档通常包含以下几个主要部分: 1. **基础类库**:这部分介绍Ext的基础类,如...

Global site tag (gtag.js) - Google Analytics