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); // ← 絞り込んだ部分集合を表示
}