是否可以根据用户角色隐藏/显示Kendo网格列?

Iro*_*man 5 asp.net asp.net-mvc kendo-ui kendo-grid

我在asp.net MVC中使用Kendo ui网格.是否可以根据用户角色隐藏/显示网格列?谢谢

Jar*_*zak 9

最简单的方法是:

@(Html.Kendo().Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.Id);
        columns.Bound(p => p.Name);
        if(User.IsInRole("Admin")) {
            columns.Bound(p => p.AdminOnlyInfo);
        }
    })
    ...
)
Run Code Online (Sandbox Code Playgroud)


小智 4

您可以使用hide指定列是否可见,因此一种选择可能是根据用户角色设置变量。例如,在控制器中

ViewBag.CanDisplay = true; // or omit if the user does not have permission
Run Code Online (Sandbox Code Playgroud)

并在视图中

var canDisplay = '@ViewBag.CanDisplay' | false;
$("#grid").kendoGrid({
  columns: [
    { field: "firstProperty" },
    { field: "anotherProperty", hidden: !canDisplay }    
  ],
Run Code Online (Sandbox Code Playgroud)