在Ext JS中搜索模式

时间:2012-03-13 14:49:41

标签: regex extjs filter grid store

我有一个网格,上面有某些记录和文本字段。文本字段与网格连接,这样每次有一个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 * /创建一个正则表达式模式但是使用它只会破坏过滤器并且它甚至不会返回单个结果。

3 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我知道上面的答案都是陈旧的,但也许可以帮助别人。

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