如何从Controller创建Grid.Mvc?

时间:2016-10-23 11:51:19

标签: c# asp.net-mvc grid.mvc

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

1 个答案:

答案 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内,您可以迭代此列表并动态构建列。