C#按时间更改表行类

时间:2019-03-09 18:06:57

标签: c#

我正在像这样将列表添加到表中

    public ActionResult Add( string task , DateTime duedo , DateTime time)
{
    Task.Add(new Tasks { descripiton = task, duedo = duedo, time = DateTime.Now });
    Task.Sort((x, y) => DateTime.Compare(x.duedo, y.duedo));
    return RedirectToAction("Index");
}

我正在用html显示表单

    <tbody>
    @foreach (var task in Model)
    {
        <tr>
            <td>
                @task.time
            </td>
            <td>
                @task.descripiton
            </td>
            <td id="time">
                @task.duedo
            </td>
        </tr>
    }
</tbody>

问题是当Duedo日期即将到来或当前时间超过当前时间时,我该如何制作一个能够更改表行颜色的函数。 例如,如果Duedo时间/日期在1小时之内,则表格行将变为红色。

1 个答案:

答案 0 :(得分:1)

将class属性添加到您的行中,然后根据您的条件进行填充:

<tr class="@(task.duedo >= DateTime.Now.AddHours(-1) ? "due-in-one-hour" : task.duedo >= DateTime.Now ? "overdue" : "")">

然后,只需在样式表中定义类。为了保持代码的可读性/可管理性,建议将类名称的计算结果放入Razor文件的辅助函数中。