0

我在我的项目中使用 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)  
4

1 回答 1

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您可以遍历此列表并动态构建列。

于 2016-10-23T12:43:56.067 回答