Строки веб-сетки на основе коллекции в модели. MVC4
Я пытаюсь создать сетку, которая будет иметь строки одного столбца. Количество строк будет зависеть от количества адресов электронной почты (строк) в поступающей модели. Вот код представления:
@model BarClients.Models.BarClientsViewModel
@{
var grid = new WebGrid(Model.EmailAddressesOfChosenClient, ajaxUpdateContainerId: "gridContent");
int rowIndex = 0;
if (Model.EmailAddressesOfChosenClient != null)
{
foreach (var email in Model.EmailAddressesOfChosenClient)
{
grid.Rows.Add(new WebGridRow(grid, email, rowIndex++));
}
}
}
div id="gridContent"
@grid.GetHtml()
/div (arrows removed).
На @grid.GetHtml() я получаю сообщение об ошибке: источник данных должен быть связан, прежде чем эта операция может быть выполнена.
Возможно ли даже то, что я пытаюсь сделать? Большое спасибо.
1 ответ
Вам не нужно добавлять строки. Они будут автоматически сгенерированы, когда вы позвоните @grid.GetHtml()
,
В этой статье показано, как использовать WebGrid
и даже улучшите его, чтобы его можно было безопасно печатать, если хотите.
Минимальный код для визуализации сетки выглядит следующим образом:
@{
var grid = new WebGrid(Model, defaultSort:"Name");
}
@grid.GetHtml()
куда Model
является IEnumerable<T>
объектов, например List<T>
, (Ну, есть немного больше, чем минимальное: это будет сортировать сетку по Name
, а также Name
должно быть свойством перечисленного объекта).
Конечно, вы можете "подстроить" его, определив столбцы, форматы и так далее.