MVC: Как отобразить столбец в Html: Grid, только если в нем есть значение? - PullRequest
1 голос
/ 05 июня 2011

Мне интересно, как контролировать, видим ли столбец в Html.Grid, если в списке ничего не возвращено. Поэтому, если в приведенном ниже примере Model.Comment не имеет значения в ExampleList, столбец не должен отображаться.

@Html.Grid(Model.ExampleList).Columns(c =>
    {
        c.For(a => string.Format("{0:dd/MM/yyyy}", a.DateRequested)).Named("Date Requested");
        c.For(a => a.Comment).Named("Comment");
        c.For(a => a.Completed).Named("Completed");
    })

Как этого достичь?

1 Ответ

2 голосов
/ 05 июня 2011

Вы должны использовать модель представления, и внутри этой модели представления вы должны иметь логическое свойство, указывающее, должно ли что-то быть видимым или нет.Очевидно, что вся логика определения его значения - не ответственность за представление => это контроллер или модель.Например, у вас может быть следующая модель представления:

public class MyViewModel
{
    public bool ShouldDisplayCommentsColumn 
    { 
        get 
        {
            return .... // Check the Items and decide whether you 
                        // should be showing the Comments column or not
        }
    }
    public IEnumerable<SomeOtherViewModel> Items { get; set; }
}

, а затем в представлении:

if (Model.ShouldDisplayCommentsColumn)
{
    c.For(a => a.Comment).Named("Comment");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...