Добавление динамического класса в столбец Webgrid из свойства модели - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть веб-сетка со многими столбцами.Один из столбца для срока.Мне нужно изменить цвет каждой записи в зависимости от условия.В зависимости от условия я добавил свойство кода цвета под названием «ColorCode» в модель представления.Этот цвет может быть «красным», «желтым» или «зеленым».

мой столбец DueDate выглядит следующим образом:

 taskgrid.Column("DueDate", "Due Date", style: "DueDate", canSort: true, format: (item) => item.DueDate.ToShortDateString()),

здесь этот столбец имеет класс «DueDate».Я хочу сделать это "красный цвет DueDate", "желтый цвет DueDate" или "зеленый цвет DueDate" из "item => item.ColorCode", т.е.:

style: "DueDate" + item => item.ColorCode

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

Помощник WebGrid не поддерживает это. Возможный обходной путь - применить стиль не к <td>, а к элементу внутри:

taskgrid.Column(
    "DueDate", 
    "Due Date", 
    canSort: true, 
    format: 
        @<text>
            <div class="DueDate @item.ColorCode">
                @item.DueDate.ToShortDateString()
            </div>
        </text>
),

Другие возможные хаки включают использование javascript для перемещения сгенерированного класса из внутреннего <div> в родительский <td>, если вам абсолютно необходимо применить этот класс к <td>.

1 голос
/ 22 июля 2013

приведенный выше код изменен, как указано ниже

taskgrid.Column("DueDate",header:"Due Date",format: @<text><div class="@((@item.Approved)?"reject-icon":"approve-icon")">@item.DueDate</div></text>)
0 голосов
/ 29 января 2013

Попробуйте следующее: у меня работает. Я использовал условный оператор в атрибуте класса.

class= "@((item.Approved)?"reject-icon":"approve-icon")"
...