Строки веб-сетки на основе коллекции в модели. 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 должно быть свойством перечисленного объекта).

Конечно, вы можете "подстроить" его, определив столбцы, форматы и так далее.

Другие вопросы по тегам