我有以下困境:
我正在尝试在局部视图内制作Kendo UI网格,该视图将与不同类型的对象一起使用,并且可以支持诸如Delete或Create之类的操作。
该对象如下所示:
public class GridViewModel
{
public Type ObjectType { get; set; }
public IEnumerable<object> Items { get; set; }
public GridViewModel(Type type, IEnumerable<object> items)
{
Items = items;
ObjectType = type;
}
}
Run Code Online (Sandbox Code Playgroud)
ObjectType是类型类型的变量,该变量保留类的类型。例如员工,产品,发票或其他任何东西。
Items是前面提到的类型的IEnumerable对象列表。
假设我们有一个Employee View,我们在以下内部调用:
@model IEnumerable<Employee>
@{
GridViewModel gridModel = new GridViewModel(typeof(Employee), Model);
}
@{
Html.RenderPartial("_AdvancedGrid", gridModel);
}
Run Code Online (Sandbox Code Playgroud)
这样,我们以指定对象作为模型加载局部视图。
现在,Kendo UI Grid在局部视图内:
@model XMLProject.Models.GridViewModel
@{
System.Reflection.PropertyInfo[] propertyArray = Model.ObjectType.GetProperties();
}
@(Html.Kendo().Grid<Employee>()
.Name("Grid")
.Columns(columns =>
{
foreach (var property in propertyArray)
{
columns.Bound(property.Name);
}
columns.Command(c …Run Code Online (Sandbox Code Playgroud)