ASP.NET MVC 3 WebGrid - условное форматирование столбцов - PullRequest
7 голосов
/ 21 декабря 2010

Есть ли возможность сделать условное форматирование с помощью Webgrid в ASP.NET MVC 3?

Я знаю, что могу сказать: ... grid.Column("PropertyName", "Header Name", style: "bold") ...

и он будет отображать HTML для TD, который говорит: class="bold".

То, что я хочу, это рендерить некоторые TD в одном стиле, а другие TD в другом стиле. Подобно: ... grid.Column("PropertyName", "Header Name", style: (item) => (item.Property > 100) ? "bold" : "normal")) ....

, но это приводит к ошибке «Наилучшее совпадение перегруженного метода ... имеет недопустимые аргументы.»

Есть идеи, возможно ли это?

Спасибо .Джим Биддисон

Ответы [ 4 ]

8 голосов
/ 09 декабря 2011

Я знаю, что опаздываю с ответом, но если кто-то все еще ищет такой вид условного форматирования / привязки значения столбца для WebGrid, вот что работает:

@grid.GetHtml(
   columns: grid.Columns(
      grid.Column(format: (item) => (item.someproperty !=null) ? 
        Html.Raw("I've got value") : 
        Html.Raw("I don't :("))
   )
)
5 голосов
/ 10 марта 2011

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

<script type='text/javascript'>
    $(document).ready(function () {
        jQuery.each($('tbody tr td'), function () {
            if (this.textContent == "some value") {
                $(this).addClass("some class");
            }
        });
    });
</script>

Конечно, вам придется изменить логику внутри каждого цикла ...

Надеюсь, что это поможет.*

0 голосов
/ 05 августа 2016

Для googler, улучшенная версия ответа Torm:

@grid.GetHtml(
    columns: new[]
    {       
        grid.Column(format:item => Html.Raw("<span" + (item.Property > 100 ? " style='bold'" : "") + ">" + item.Property + "</span>")),
    }
)
0 голосов
/ 11 апреля 2013

Я не думаю, что свойство style принимает функции. Вы можете использовать jQuery или вот взломать:

Hack

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