フィルターを大文字と小文字を区別するものから区別しないものに変更する方法はありますか?
ありがとうございました。
フィルターを大文字と小文字を区別するものから区別しないものに変更する方法はありますか?
ありがとうございました。
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();
DataView フィルターについて話していると思いますが、フィルター機能の実装は完全にあなた次第です。SlickGrid の例で使用されているフィルター関数に注意してください。この関数は、dataView.setFilter(your_function_here) を使用してフィルターとして設定されます。したがって、必要に応じてフィルター関数を実装し、dataView に設定します。
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;
}