To hide grid columns using custom script, you can call this function at your desired event:
function removeColumns(frm, fields, table) {
let grid = frm.get_field(table).grid;
for (let field of fields) {
grid.fields_map[field].hidden = 1;
}
grid.visible_columns = undefined;
grid.setup_visible_columns();
grid.header_row.wrapper.remove();
delete grid.header_row;
grid.make_head();
for (let row of grid.grid_rows) {
if (row.open_form_button) {
row.open_form_button.parent().remove();
delete row.open_form_button;
}
for (let field in row.columns) {
if (row.columns[field] !== undefined) {
row.columns[field].remove();
}
}
delete row.columns;
row.columns = [];
row.render_row();
}
}