在 Ext JS 中搜索模式

Posted

技术标签:

【中文标题】在 Ext JS 中搜索模式【英文标题】:Searching for a pattern in Ext JS 【发布时间】:2012-03-29 23:52:30 【问题描述】:

我有一个包含某些记录的网格和一个上面的文本字段。文本字段与网格相连,因此每次有 keyup 事件时,它都会进入过滤函数,以便仅显示包含用户输入的字符的那些记录。问题是现在它只匹配来自记录字符串名称的起始字符,但是 id 喜欢它能够过滤所有那些包含在记录字符串名称中任何位置键入的字符的记录。

截图:- http://imgur.com/a/qvIHO

第一张图片显示记录,第二张显示当我输入“c”时过滤的结果,第三张显示当我按下“p”时它不会返回任何结果,但是我希望它返回“GPL 产品"和"报告期间",因为它们都包含'p'。

这是代码:-

  onDimensionFilterTextBoxKeyUp: function (filterTxtBox, evntObj, eOpts) 
    var dimStore = this.getDimensionStoreStore();
    //get new value
    var searchValue = filterTxtBox.getValue();
    //var regex = /searchValue*/;
    //clear previous search value
    dimStore.clearFilter();
    if (!Ext.isEmpty(searchValue)) 
        //load filtered data 
        dimStore.filter('DimensionName', searchValue);
    
  

我尝试使用 /searchValue*/ 创建一个正则表达式模式,但使用它只会破坏过滤器,甚至不会返回单个结果。

【问题讨论】:

【参考方案1】:

我知道上面的那些答案是旧的,但也许可以帮助某人。

store.filter( anyMatch: true, exactMatch: false, property: valor_property, value: valor );

【讨论】:

【参考方案2】:

试试这个:

re = new RegExp(searchValue, ignoreCase ? 'i' : '');
store.filter(field, re);

【讨论】:

【参考方案3】:

您只需要指定不区分大小写的搜索。

dimStore.filter('DimensionName', searchValue, true, false);

【讨论】:

以上是关于在 Ext JS 中搜索模式的主要内容,如果未能解决你的问题,请参考以下文章

EXT JS MVC开发模式

ext.js的mvc

如何在 MVC 模式中包含 UX 类?

在字符串 Js 中搜索模式

Ext JS - renderer 函数

在可编辑网格中,如何使 Ext 组合框在选择项目时立即完成编辑模式?