Hiding a column by unchecking it in that menu invokes .setHidden(true) on that column config, so that you can make the same changes (hiding and showing columns that are possible to display) from in code as from the UI.

If you don't want a column shown at all, or even a possible part of the grid, remove it from the ColumnModel. Making a change like this after the grid has been rendered requires notifying the grid that a major change has been made, see GridView.refresh for more information.

Best answer to unshow hideen column in grid header context menu

To have a hidden, and unshowable column use.

Code:hidden: true,
hideable: false

The hidden config hides it, the hideable config says whether to add it to the show/hide menu that the user sees.So that column will then be under programmatic control only to show or hide it, not user control.