Html.DisplayFor в веб-сетке mvc - PullRequest
4 голосов
/ 08 июля 2011

Используя веб-сетку mvc asp.net, можно ли визуализировать столбец с использованием Html.DisplayFor для текущей строки / столбца?

    grid.Column("Roller", "Roller", canSort: true, format: @<text>@Html.DisplayFor( <the row result here> )</text>)

Помощник Html.DisplayFor (m) использует модель страницы, а не текущий элемент строки.Есть ли способ обойти это.

Спасибо

// Йохан

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Да, это возможно. Например, предположим, что вы привязываете список Banner объектов к вашей WebGrid. Также рассмотрите свойство Banner.Active, которое является значением boolean, которое вы хотите отобразить как CheckBox. Вы можете сделать это:

format: (item) => { var banner = item.Value as Banner;
                    return Html.DisplayFor(modelItem => banner.Active); 
                   }

Вы также можете сделать это:

format: (item) => Html.DisplayFor(modelItem => ((item as WebGridRow).Value as Banner).Active)

Но я бы посчитал первый вариант более читабельным.

0 голосов
/ 27 июля 2011

попробуйте

var grid = new WebGrid(Model);

чем

grid.Column("Roller", "Roller", canSort: true, format: @<text>@Html.DisplayFor(modelItem => item.blabla)</text>)

Использование item.blabla "каково бы ни было имя элемента ur", может сработать, но я не очень разбираюсь в этом.

также нет большой разницы между

@<text>@Html.DisplayFor(modelItem => item.blabla)</text>

&

@<text>@item.blabla</text>

оба использования делают свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...