Angular ng- grid - hide/remove 来自列菜单的列输入
Angular ng- grid - hide/remove column input from column menu
当您使用具有真值的标志 'showColumnMenu' 时。
ng-grid 使用右端顶部面板上的按钮呈现。
使用此按钮我们可以 hide/show 网格上的列。
在我的案例中,我不想让某些列在网格上可见 - 这意味着我希望列菜单框在没有某些列的情况下呈现。
我创建了 plunker 来证明我的问题
> http://plnkr.co/edit/VXOzBIRfyY3FoCTct9PI?p=preview
在那个 plnkr - 我使用 (visible: false) 将列 'Id' 设置为不可见
但是如果用户点击右端面板的列菜单
他将能够将其设置为可见..
编辑
我需要介绍的另一种情况是存在其他一些情况
列说 'name' 我不希望让用户在列菜单中配置它(通过将其设置为不可见) - 这意味着列 'name' 必须始终在网格上!
并且用户不需要在列菜单中看到它..
所以,如果我能在列菜单中隐藏这些列(id、名称)就好了
我的问题将得到解决..
谢谢!
为什么不直接关闭列菜单?听起来您基本上不想使用它。当您的用户无法控制任何其他列时,能够隐藏年龄列对他们来说很重要吗?
为了隐藏 ID,我建议首先不要放入列列表。即使您不将其包含在网格中,它仍将存在于数据中并可由您的代码访问。网格只是一个向用户显示信息的地方,所以不要把你不想显示的信息放在那里。
编辑:查看 UI-Grid,Ng-Grid 项目的更新版本:http://ui-grid.info/
对于这种情况,它有一个新的 ColumnDef 属性, "EnableHiding"。
这是他们从 ng-grid 升级的文档:http://ui-grid.info/docs/#/tutorial/099_upgrading_from_2
您可以在 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
当您使用具有真值的标志 'showColumnMenu' 时。 ng-grid 使用右端顶部面板上的按钮呈现。
使用此按钮我们可以 hide/show 网格上的列。
在我的案例中,我不想让某些列在网格上可见 - 这意味着我希望列菜单框在没有某些列的情况下呈现。
我创建了 plunker 来证明我的问题
> http://plnkr.co/edit/VXOzBIRfyY3FoCTct9PI?p=preview
在那个 plnkr - 我使用 (visible: false) 将列 'Id' 设置为不可见 但是如果用户点击右端面板的列菜单 他将能够将其设置为可见..
编辑
我需要介绍的另一种情况是存在其他一些情况 列说 'name' 我不希望让用户在列菜单中配置它(通过将其设置为不可见) - 这意味着列 'name' 必须始终在网格上! 并且用户不需要在列菜单中看到它..
所以,如果我能在列菜单中隐藏这些列(id、名称)就好了 我的问题将得到解决..
谢谢!
为什么不直接关闭列菜单?听起来您基本上不想使用它。当您的用户无法控制任何其他列时,能够隐藏年龄列对他们来说很重要吗?
为了隐藏 ID,我建议首先不要放入列列表。即使您不将其包含在网格中,它仍将存在于数据中并可由您的代码访问。网格只是一个向用户显示信息的地方,所以不要把你不想显示的信息放在那里。
编辑:查看 UI-Grid,Ng-Grid 项目的更新版本:http://ui-grid.info/ 对于这种情况,它有一个新的 ColumnDef 属性, "EnableHiding"。 这是他们从 ng-grid 升级的文档:http://ui-grid.info/docs/#/tutorial/099_upgrading_from_2
您可以在 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