Как создать Grid.Mvc из контроллера?

#c# #asp.net-mvc #grid.mvc

#c# #asp.net-mvc #grid.mvc

Вопрос:

Я использую Grid.Mvc в своем проекте. Я хочу создать необязательные свойства сетки пользователем. Например, один из пользователей хочет видеть заголовок сетки как «Схема», другой пользователь хочет видеть как «Имя схемы». Я буду управлять им из базы данных.

Итак, мне нужно создать приведенный ниже код из контроллера и записать на 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:

Вам не нужно создавать сетку из контроллера, все, что вам нужно, это сохранить пользовательские настройки и передать их в view model, а затем использовать их в view для создания сетки.

пример: Допустим, вы создали класс с именем 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 , вы можете выполнять итерации по этому списку и динамически создавать столбцы.