我正在使用 Razor 和 KendoUI 开发 ASP.NET MVC 4.5 项目。我有以下两个课程:
public class Rol
{
[Key]
[ScaffoldColumn(false)]
public int RolId { get; set; }
[Required]
[MaxLength(50)]
public string Name{ get; set; }
[MaxLength(255)]
public string Desciption { get; set; }
public bool Active{ get; set; }
[DisplayName("Permissions")]
public virtual ICollection<Permission> Permissions { get; set; }
}
public class Permission
{
[Key]
[ScaffoldColumn(false)]
public int PermisoId { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[MaxLength(255)]
public string Description { get; set; }
public bool Active { get; set; }
public ICollection<Rol> Rols { get; set; }
}
但我不知道如何制作一个有列的网格:
具有 Rol.Name | 的列 列与 Rol.Description | Rol.Active 列 | 包含所有 Rol.Permissions.Name(list) 的列
并支持 KendoUI 的 CRUD 操作
在我看来:
@model IEnumerable<ItemsMVC.Models.Rol>
@(
Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(c =>
{
c.Bound(p => p.RolId).Visible(false);
c.Bound(p => p.Name);
c.Bound(p => p.Description);
c.Bound(p => p.Active)
.ClientTemplate("#= Active ? 'yes' : 'No' #")
.Width(100);
**HERE THE LIST OF PERMISSIONS**
c.Command(p => {
p.Edit();
p.Destroy();
}).Width(200);
}
)
.Pageable(p => p.Enabled(true))
.Scrollable(s => s.Enabled(true))
.Sortable(s => s.Enabled(true))
.Filterable(f => f.Enabled(true))
.ColumnMenu(c => c.Enabled(true))
.ToolBar(t => t.Create())
.Editable(e => e.Mode(GridEditMode.PopUp))
.DataSource( ds => ds
.Ajax()
.Model(model =>model.Id(p => p.RolId))
.Create(c => c.Action("EditingInline_Create", "Rol"))
.Read(r => r.Action("Permisos_Read","Rol"))
.Update(u => u.Action("EditingInline_Update", "Rol"))
.Destroy(d => d.Action("EditingInline_Destroy", "Rol"))
)
)