如何使用完全匹配过滤extjs商店

Ric*_*ler 4 extjs store filter extjs4.1

我正在为商店使用过滤器.问题是我想要返回完全匹配.

例如:

如果我aa-1在网格中过滤它将显示aa-1,aa-1***但如果我只想看到所有内容aa-1.

我用它来过滤:

listeners: {
    itemclick: function() {
        var data = grid.getSelectionModel().selected.items[0].data;
        store.clearFilter();
        store.filter('productsCat', data.productsCat);
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能完全匹配?

Far*_*ish 13

对于ExtJS 4,您只需使用exactMatch和caseSensitive配置选项:

store.filter({
  property: fieldName,
  value: fieldValue,
  exactMatch: true,
  caseSensitive: true
})
Run Code Online (Sandbox Code Playgroud)

  • 这种方法是最好的 (2认同)

dou*_*ald 5

您可以在过滤器中使用正则表达式来确保比较值是短语的结尾.

要么是这样,要么使用filterBy()方法来定义比较函数,例如:

store.filterBy(this, function(rec, id) {
    if(rec.get('thefieldtocompare') === "what you want to compare against") {
        return true;
    }
    else {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)