如何创建网格.来自控制器的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)  

您不需要从控制器创建网格,您需要的是保存用户设置并将其传递给视图模型,然后在视图中使用它来创建网格。

交货:假设你创建了一个名为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中,您可以遍历该列表并动态构建列。

最新更新