从model属性向Webgrid列添加动态类

时间:2012-02-14 04:11:34

标签: asp.net-mvc dynamic webgrid

我有一个带有很多coloumn的Webgrid。 其中一列是截止日期。 我需要根据条件更改每个条目的颜色。 根据条件,我在视图模型中添加了一个名为“ColorCode”的颜色代码属性。 这种颜色可以是“红色”,“黄色”或“绿色”。

我的DueDate列如下:

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

这里的coloumn有“DueDate”类。 我想把它作为“DueDate red”,“DueDate yellow”或“DueDate green” 来自“item => item.ColorCode” 即:

  

style:“DueDate”+ item => item.ColorCode

3 个答案:

答案 0 :(得分:2)

WebGrid助手不支持此功能。一种可能的解决方法是将样式应用于<td>而不是内部的项目:

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

其他可能的 hacks 涉及使用javascript将移动生成的类从内部<div>移动到父<td>,如果它对您来说绝对必要将此类应用于<td>

答案 1 :(得分:1)

上面的代码修改如下:

taskgrid.Column("DueDate",header:"Due Date",format: @<text><div class="@((@item.Approved)?"reject-icon":"approve-icon")">@item.DueDate</div></text>)

答案 2 :(得分:0)

尝试以下方法:它适合我。我在class属性中使用了条件语句。

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