javascript代码实例教程-Extjs Store findRecord 查询API

发布时间:2019-01-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-Extjs Store findRecord 查询API脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

 

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

 

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

 

1

VAR user = userStore.findRecord('FirstName', 'Felix');

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

 

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

 

 

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这个方法有几个参数,这里务必得说明:

 

fieldName (必选) : 需要作为查询条件的field name

value(必选): 查询的值,与fieldName匹配

startIndex(可选):从store的哪个位置开始查询, 默认值是0

anyMatch(可选): 默认是从第一个字符开始匹配,类似SQL中的‘a%’, 如果设置为True,则是全匹配,类似SQL中的‘%a%’,默认值是false

caseSensITive(可选): 设置为true则开启大小写敏感, 默认值是false

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才对)

 

var field = fieldStore.findRecord('fieldOid', '1');

 

var fieldName = field.get('fieldName');

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

 

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

 

 

 

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

 

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

 

 

var field = fieldStore.findRecord('fieldOid', '1', 0, false, false, true);

 

var fieldName = field.get('fieldName');

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-Extjs Store findRecord 查询API全部内容,希望文章能够帮你解决javascript代码实例教程-Extjs Store findRecord 查询API所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。