在使用 ExtJS 的 GridPanel 时,隐藏列有时会意外地出现在列的菜单选项(menu 或 menuDisabled)中,如下图所示:

坦白说,这种暴露出来的隐藏列在界面上几乎没有实际用途——它通常只是为后台取值而隐藏的字段。但问题在于,既然已经设置了 hidden: true,为什么它依然会出现在右键菜单中呢?
解决方案其实很简单:只需额外添加一个属性 hideable: false 即可。示例代码如下:
代码如下:
{
header: "attendanceId",
dataIndex: "attendanceId",
hideable: false,
hidden: true
}
这样设置之后,隐藏列将不再出现在菜单中,既保持了界面整洁,又不会影响后端取值——可谓两全其美。
