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 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>