我在我的项目中使用了Grid.Mvc。我想用户制作可选的网格属性。例如,用户之一希望将网格标题视为" Schema",另一个用户希望看到" Schema Name"。我将从数据库中控制它。
所以,我需要从控制器创建下面的代码并用cshtml编写。我该怎么办?
@Html.Grid(Model).Columns(columns =>
{
columns.Add(c => c.SchemeID).Titled("Scheme ID").Filterable(true);
columns.Add(c => c.SchemeName).Titled("SchemeName").Filterable(true);
columns.Add()
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(o => Html.ActionLink("Edit", "Edit", new { id = o.SchemeID }));
}).WithPaging(10).Sortable(true)
答案 0 :(得分:0)
您无需从控制器创建网格,您需要保存用户设置并将其传递给视图模型,然后在视图中使用它来创建网格。
例如:
假设你创建了一个名为UserGridSettings
的类,它有一个名为SchemaColumnTitle
的属性,你可以添加你想要的任何东西。
在视图模型中,您将添加UserGridSettings
类型的属性,并在视图中使用它,如下所示:
@Html.Grid(Model).Columns(columns =>
{
columns.Add(c => c.SchemeID).Titled("Scheme ID").Filterable(true);
columns.Add(c => c.SchemeName).Titled(Model.GridSettings.SchemaColumnTitle).Filterable(true);
columns.Add()
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(o => Html.ActionLink("Edit", "Edit", new { id = o.SchemeID }));
}).WithPaging(10).Sortable(true)
当然,您可以使模型具有UserGridSettings
列表,并且在@Html.Grid
内,您可以迭代此列表并动态构建列。