Я использую WebGrid MVC во время моего приложения, и он отлично работает. Я устанавливаю столбцы для сетки в свой код контроллера, а затем передаю это на мое представление. Добавить новый столбец, как это, где columns
является List<MvcWebGridColumn>
:Связывание столбца MVC WebGrid с значением свойства словаря источника
columns.Add(new WebGridColumn { ColumnName = "Path", Header = "Full Path", Filter = ... });
И тогда, на мой взгляд, я установить столбцы сетки с моей точки зрения модели, как это:
@grid.GetHtml(
footerStyle: "hide",
mode: WebGridPagerModes.All,
htmlAttributes: new { id = @Model.Id },
columns: @Model.Columns)
Вплоть до этого момента, установка столбцов в коде отлично работала, поскольку столбцы были известны, свойства первого уровня моих моделей. Теперь все сложнее, и я не знаю, как справиться с этим с помощью WebGrid. Вот пример модель:
public class Requirement
{
public string Id { get; set; }
public string Path { get; set; }
public Dictionary<string, string> Fields { get; set; }
}
Я хочу, чтобы иметь возможность установить колонок а WebGrid в коде, используя значение из ключа Field
словарного свойства. Я пытаюсь, но это не работает:
columns.Add(new WebGridColumn { ColumnName = String.Format("Fields[\"{0}\"]", key), Header = label });
Я попытался также положить метод метод GetFieldValue(string key)
на моей Requirement
модели, но это не нравится, что либо. Похоже, он может обрабатывать только точное соответствие идентификатора свойства объекта.
Я не уверен, что это возможно с помощью WebGrid из коробки или если я должен расширить функциональность. Заранее спасибо.
Это сообщение может вам помочь: http://stackoverflow.com/questions/18317207/mvc-webgrid-dynamic-columns – ataravati
Спасибо за ссылку, но этот человек знает идентификаторы вспомогательных свойств. Я пытаюсь получить значение для столбца из свойства словаря по ключу. – im1dermike