← TssGrid/例一覧

TssGrid 例: フィルタUI サンプル(コア非搭載)

フィルタはコアに入れず、並べ替え同様「サンプル+既存フック」で作ります。仕組みは ①マスタ配列をアプリ側に保持 ②絞り込んだ部分集合を setData で表示 ③onAfterChange で編集をマスタへ同期。これでフィルタ中でも編集が効き、解除すると全件+編集が残ります
下の検索(全列横断)部署 / 状態の絞り込みを組み合わせてください。

差し込み(要点)

const master = rows.slice();              // ← アプリ側がマスタ(真実の値)
let view = master.slice();

const grid = new TssGrid(host, {
  data: view,
  onAfterChange: (ch) => {                // 編集をマスタへ同期(view[r] はマスタ行の参照)
    for (const c of ch) if (view[c.r]) view[c.r][c.c] = grid.getValue(c.r, c.c);
  },
});

function applyFilter() {
  const q = qBox.value.trim().toLowerCase();
  view = master.filter(row =>
    (!q || row.some(v => String(v).toLowerCase().includes(q))) &&
    (!dept.value || row[2] === dept.value) &&
    (!state.value || row[3] === state.value));
  grid.setData(view);                     // ← 絞り込んだ部分集合を表示
}