使 Kendo ASP.NET MVC inCell 可根据 Viewbag 条件进行编辑
Make Kendo ASP.NET MVC inCell Editable based on Viewbag condition
是否可以制作一个 Kendo MVC 网格 .Editable() 基于仅在您有特定 Viewbag 时才允许编辑的功能?
我有一个 Viewbag.DisplayButton
的 viewbag。如果您具有开发角色,则该 viewbag 仅 'true'(因此非开发人员无法编辑任何内容)。我怎样才能使它与 .Editable() 一起工作,以便只有拥有该 viewbag 才能编辑单元格?
目前,如果我设置 Editable(true),那么任何人(开发人员、客户,几乎任何人)都可以编辑该单元格。如果我将它设置为 Editable(false),那么包括开发人员在内的任何人都无法编辑它。所以我需要一个只有当你有那个特定的 viewbag 时才会执行的功能。
为此使用 Razor 代码块。您可以将网格定义分配给变量,然后执行条件逻辑并添加其他配置(如果有)。最后调用 Render 方法。这是一个例子:
<h3>Some content</h3>
@{
var isAdmin = true;
var grid = (Html.Kendo().Grid<MyModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.MyModelID).Filterable(false);
columns.Bound(p => p.SomeModelProperty);
})
.Pageable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(m=>m.Id("MyModelID"))
.Read(read => read.Action("Read", "Grid"))
)
);
if (User.IsInRole("Admin"))
{
grid.Editable(e=>e.Mode(GridEditMode.InCell));
}
grid.Render();
}
<h3>Some other content</h3>
是否可以制作一个 Kendo MVC 网格 .Editable() 基于仅在您有特定 Viewbag 时才允许编辑的功能?
我有一个 Viewbag.DisplayButton
的 viewbag。如果您具有开发角色,则该 viewbag 仅 'true'(因此非开发人员无法编辑任何内容)。我怎样才能使它与 .Editable() 一起工作,以便只有拥有该 viewbag 才能编辑单元格?
目前,如果我设置 Editable(true),那么任何人(开发人员、客户,几乎任何人)都可以编辑该单元格。如果我将它设置为 Editable(false),那么包括开发人员在内的任何人都无法编辑它。所以我需要一个只有当你有那个特定的 viewbag 时才会执行的功能。
为此使用 Razor 代码块。您可以将网格定义分配给变量,然后执行条件逻辑并添加其他配置(如果有)。最后调用 Render 方法。这是一个例子:
<h3>Some content</h3>
@{
var isAdmin = true;
var grid = (Html.Kendo().Grid<MyModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.MyModelID).Filterable(false);
columns.Bound(p => p.SomeModelProperty);
})
.Pageable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(m=>m.Id("MyModelID"))
.Read(read => read.Action("Read", "Grid"))
)
);
if (User.IsInRole("Admin"))
{
grid.Editable(e=>e.Mode(GridEditMode.InCell));
}
grid.Render();
}
<h3>Some other content</h3>