コメントするには十分な評判がないため、これを別の質問として投稿しています。この質問に対する回答として、ユーザー LFReD から提供されたソリューションを実装しようとしています。
列レベルのヘッダーを使用して Slickgrid をフィルタリングするときに部分一致を実行する方法は?
元の SlickGrid の例からこれを使用すると:
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field] != columnFilters[columnId]) {
return false;
}
}
}
return true;
}
完全な単語を入力すると機能します。部分一致は実行されません。
しかし、部分一致を実行するには、コードを次のように置き換えると
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field].indexOf(columnFilters[columnId]) == -1) {
return false;
}
}
}
return true;
}
コンソールに「Uncaught TypeError: Object 1 has no method 'indexOf'」というエラー javascript エラーが表示されます。
コードに何が欠けているのかわかりません。前のコードは正常に動作しているため、HTML コードに必要なスクリプトを既に含めていることを意味します。まだ何かが足りないようです。どこが間違っていますか?