我使用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)
您不需要从控制器创建网格,您需要的是保存用户设置并将其传递给视图模型,然后在视图中使用它来创建网格。
交货:假设你创建了一个名为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
中,您可以遍历该列表并动态构建列。