0

有没有办法将过滤器从敏感大小写更改为不敏感?

谢谢你。

4

3 回答 3

2

这是使用 DataView 过滤器的工作示例的相关部分。请注意,当首次定义值时,searchString变量将转换为小写,然后将其与myFilter函数中的小写字符串进行比较。

function myFilter(item, args) {
    if (args.searchString != "" && item["FirstName"].toLowerCase().indexOf(args.searchString) == -1 && item["LastName"].toLowerCase().indexOf(args.searchString) == -1) {
        return false;
    }
    return true;
}

....

$("#txtSearch").keyup(function (e) {
    Slick.GlobalEditorLock.cancelCurrentEdit();
    // clear on Esc
    if (e.which == 27) {
        this.value = "";
    }
    searchString = this.value.toLowerCase();
    updateFilter();
});

function updateFilter() {
    dataView.setFilterArgs({
        searchString: searchString
    });
    dataView.refresh();
}

// initialize the model after all the events have been hooked up
dataView.beginUpdate();
dataView.setItems(data);
dataView.setFilterArgs({
    searchString: searchString
});
dataView.setFilter(myFilter);
dataView.endUpdate();
于 2012-11-19T18:52:50.657 回答
1

猜你在谈论 DataView 过滤器,过滤器功能的实现完全取决于你。请注意 SlickGrid 示例中使用的过滤器函数 - 该函数使用 dataView.setFilter(your_function_here) 设置为过滤器。所以根据需要实现过滤器功能并将其设置为dataView

于 2012-05-29T20:52:33.870 回答
0
  function filter(item) {
    // String Should Match Each Other
    /* for (var columnId in columnFilters) {
      if (columnId !== undefined && columnFilters[columnId] !== "") {
        var c = grid.getColumns()[grid.getColumnIndex(columnId)];
        if (item[c.field] != columnFilters[columnId]) {
          return false;
        }
      }
    } */

    for (var columnId in columnFilters) {
        if (columnId !== undefined && columnFilters[columnId] !== "") {
            var c = grid.getColumns()[grid.getColumnIndex(columnId)];
// This Case Sensitive
//if (!(item[c.field] && (""+item[c.field]).indexOf(columnFilters[columnId]) !== -1)) {
            if (!(item[c.field] && (""+item[c.field].toLowerCase()).indexOf(columnFilters[columnId].toLowerCase()) !== -1)) { 
// Case in-Sensitive
                return false;
            }
        }
    }
    return true;
  }
于 2016-09-26T13:32:47.017 回答