#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 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 вот-вот наступит или превысит текущее время.
Например, если до указанного времени / даты остается 1 час, строка таблицы станет красной.
Ответ №1:
Добавьте атрибут class к вашей строке и заполните его в соответствии с вашими условиями:
<tr class="@(task.duedo >= DateTime.Now.AddHours(-1) ? "due-in-one-hour" : task.duedo >= DateTime.Now ? "overdue" : "")">
Затем просто определите классы в вашей таблице стилей. Чтобы сохранить код читаемым / управляемым, я предлагаю поместить вычисление имен классов во вспомогательную функцию в вашем файле Razor.
Комментарии:
1. я добавил его, но он все тот же. я отредактировал css. я не уверен, соответствует ли он по-прежнему datetime.
2. Это зависит исключительно от логики вашего приложения. Боюсь, без дополнительного кода я не смогу вам помочь.
3. я отредактировал его . первый — worker.cshtml, а другой — controller
4. На первый взгляд, для меня это выглядит нормально. Не могли бы вы проверить свою отображаемую страницу (просмотреть исходный код страницы),
<tr>
содержат ли какие-либо имена классов для ваших задач? Если они это сделают, у вас могут быть какие-то другие стили, переопределяющие цвет фона (возможно, на<td>
уровне).5. там просто написано <tr class>