2012-08-10 82 views
1

在extjs存儲過濾器功能如下:Extjs4存儲過濾器 - 在字符串內搜索

store.filter(filters,value);這是=> store.filter(列名,要搜索的字符串);

該值與連續存儲的值相匹配,如果我必須在「abcd」中搜索「bc」,它不會找到它,但是當我給出ab時它會匹配,因爲abcd以ab開頭。

如何在存儲過濾器中使用字符串過濾值,我想獲得所有匹配字符串的結果,而不僅僅是字符串的開始。

回答

3

使用自定義過濾器功能。下面是一個未經測試的例子:

var myfilter = new Ext.util.Filter({ 
    filterFn: function(rec) { 
     return rec.get('columnname').indexOf('bc') > -1; 
    } 
}); 

store.filter(myfilter); 

或者使用filterBy方法。

store.filterBy(function(rec){ 
      return rec.get('columnname').indexOf('bc') > -1; 
     } 
    }); 
+0

什麼是regEx? – user1296632 2012-08-13 22:09:20

+0

我已更新示例以使用indexOf()方法。它應該是直截了當的。 – jorel 2012-08-14 01:02:50

+0

如果你想使用正則表達式搜索,那也很簡單。 var regex =/bc /; store.filterBy(function(rec){ return regex.test(rec.get(「columnname」)); }); – Eric 2012-08-20 21:16:13