C#按时间更改表行类
我正在像这样将列表添加到表中C#按时间更改表行类,c#,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
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>
@foreach(模型中的var任务)
{
@任务时间
@任务描述
@task.duedo
}
问题是,当Duedo日期即将到来或超过当前时间时,如何创建一个能够更改表行颜色的函数。
例如,如果距离duedo时间/日期1小时,则表行将变为红色。向行添加类属性,并根据您的条件填充:
<tr class="@(task.duedo >= DateTime.Now.AddHours(-1) ? "due-in-one-hour" : task.duedo >= DateTime.Now ? "overdue" : "")">
然后,只需在样式表中定义类。为了保持代码可读性/可管理性,我建议将类名的计算放在Razor文件的帮助函数中。我添加了它,但它仍然是一样的。我编辑了css。我不确定它是否仍然与日期时间一致。这完全取决于应用程序的逻辑。如果没有更多的代码,恐怕我帮不了你。我编辑了它。第一个是worker.cshtml,另一个是controllerAt。乍一看,我觉得还可以。如果
包含任务的任何类名,是否可以检查呈现的页面(查看页面源代码)?如果他们这样做了,您可能会有一些其他样式覆盖背景色(可能在
级别)