【问题标题】:Searching for a pattern in Ext JS在 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*/ 创建一个正则表达式模式,但使用它只会破坏过滤器,甚至不会返回单个结果。

【问题讨论】:

    标签: regex extjs filter grid store


    【解决方案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);
        

        【讨论】:

          猜你喜欢
          • 2018-09-14
          • 2022-01-23
          • 1970-01-01
          • 1970-01-01
          • 2018-07-17
          • 2013-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多