当您使用旗帜' showColumnMenu'真正的价值。 ng-grid使用右端顶部面板上的按钮进行渲染。
使用此按钮,我们可以隐藏/显示网格上的列。
在我的案例中,我不想让某些列在网格上可见 - 这意味着我希望列菜单框将呈现出一些列。
Iv' e创建了plunker,它证明了我的问题
> http://plnkr.co/edit/VXOzBIRfyY3FoCTct9PI?p=preview
在那个plnkr中 - 我设置了专栏' Id'使用隐藏(可见:false) 但是,如果用户单击右端面板上的列菜单 他将能够将其设置为可见..
修改
我需要涵盖的另一种情况是存在其他情况 专栏说' name'我不希望让用户在列菜单中配置它(通过将其设置为不可见) - 这意味着列' name'必须始终在网格上! 并且用户不需要在列菜单中看到它。
所以,如果我只能在列菜单中隐藏那些列(id,name) 我的问题将得到解决..
谢谢!
答案 0 :(得分:1)
你可以在ng-grid源文件中编辑一下menuTemplate.html
$templateCache.put('menuTemplate.html',
和行
<label><input ng-disabled=\"col.pinned\" type=\"checkbox\" class=\"ngColListCheckbox\" ng-model=\"col.visible\"/>{{col.displayName}}</label>\r" +
更改为
<label ng-hide=\"col.colDef.alwaysVisible\"><input ng-disabled=\"col.pinned\" type=\"checkbox\" class=\"ngColListCheckbox\" ng-model=\"col.visible\"/>{{col.displayName}}</label>\r" +
现在你可以添加
alwaysVisible:true
到columnDefs并完成了
请参阅此处工作演示http://plnkr.co/edit/qmoILJ5LTMSlH7Uv9Rw8?p=preview
答案 1 :(得分:0)
为什么不关闭列菜单?听起来你根本不想使用它。当用户无法控制任何其他年龄栏时,您是否能够隐藏年龄栏是否很重要?
对于隐藏ID,我建议不要首先放入列列表。即使您不将其包含在网格中,它仍将存在于数据中并可由您的代码访问。网格只是向用户显示信息的地方,因此不要在其中放置您不想显示的信息。
编辑:查看UI-Grid,Ng-Grid项目的更新版本:http://ui-grid.info/ 它有一个新的ColumnDef属性,“EnableHiding”就是这种情况。 这是他们从ng-grid升级的文档:http://ui-grid.info/docs/#/tutorial/099_upgrading_from_2