我们正在使用MS Identity Framework进行基于角色的授权。在我们的应用程序中,角色实际上是"权限"访问或修改应用程序中的特定选项卡。该应用程序包含一个主视图,其中有几个部分视图,每个部分视图代表一个选项卡。这些选项卡包含可编辑的Kendo网格。
用户可以拥有"仅查看"允许访问选项卡或"查看和编辑"允许。具有“选项卡”的“查看”和“编辑”权限的用户可以通过“操作”列查看网格并编辑其中的任何行。对于给定选项卡具有“仅查看”权限的用户应该在没有“操作/命令”列的情况下看到该选项卡中的网格。
我们已经通过控制器中基于角色的身份验证来限制网格中与命令列相关的功能。但我们还希望从具有该特定网格的“仅查看”访问权限的用户的视图中删除该列。我正在考虑使用Hidden()选项来实现这一目标。
根据Telerik的说法,Kendo网格可以选择使用隐藏条件隐藏列("条件")。但是,除了使用显式布尔值之外,我找不到使用该条件的示例。
有人可以在网格中绑定命令列时给出用于编写更明确条件的语法示例(例如,如果ViewBag [" clientRole"]为1)(例如:
c.Command(command => {command.Edit(); command.Destroy();})。隐藏("条件")
不幸的是,在任何地方都没有条件语法的文档或示例。
答案 0 :(得分:0)
此选项仅接受布尔值。您能否详细说明您的确切配置?
修改强> 您可以通过简单地将ViewData(或传递给此选项的值)转换为bool类型来实现此目的:
控制器:
ViewData["hideColumns"] = true;
网格:
columns.Bound(p => p.OrderDescription).Hidden((bool)ViewData["hideColumns"]);