2012-03-13 54 views
2

我有一个网格,上面有一些记录和一个文本域。文本字段与网格相连,每次发生键盘事件时都会转到过滤器函数,以便只显示包含用户键入的字符的记录。问题是,现在它只能从记录字符串名称的起始字符,但是像它可以过滤记录字符串名称中任何位置包含字符类型的所有记录。在Ext中搜索模式JS

截图: - 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

试试这个:

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

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

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

我试过了,仍然是同样的问题。 – Armaan 2012-03-13 15:08:35

1

我知道,以上这些问题的答案都老了,但也许可以帮助别人。

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

+0

不错的工作..... – 2014-05-06 12:40:59