использовать html tag при возврате строки в функции C#

Рейтинг: 0Ответов: 1Опубликовано: 08.03.2023

в таблице в одной из ячеек показываю данные, которые беру из фунцкии строка + переменная из БД (расчет времени), строку необходимо покрасить в красный цвет,

как добавить html tag например <span>, чтобы использовать класс css

или может другие решения бывают ?

private string GetTimeDifference(DateTime date1, DateTime date2)
{
    string timeString = "";
    TimeSpan ts = planningDateHeure - DateTime.Now;

    //.....

    if ((int)ts.TotalMinutes < 0)  // опаздыват, красного цвета строка
    {
        timeString = "Опаздывает на : ";
        switch (ts.Days)
        {
            case 0:
                HH = ts.Hours.ToString();
                MM = ts.Minutes.ToString().....;
                return "<span style='background-color:red;'>" + timeString "</span>" + ....;
            default:
                HH = ts.Hours.ToString();
                MM = ts.Minutes.ToString()......;

                if (....) { ..... }
                return "<span style='background-color:red;'>" + timeString "</span>" + ....;
        }
    }
    else // вовремя, то без красного цвета
    {
        timeString = "Прибудет вовремя : ";
        switch (ts.Days)
        {
            case 0:
                HH = ts.Hours.ToString();
                MM = ts.Minutes.ToString().....;
                return timeString......;

            default:
                HH = ts.Hours.ToString();
                MM = ts.Minutes.ToString().....;

                ...
                if (.......)
                    return timeString + .........;
        }
    }
}

Ответы

▲ 1Принят

имхо, куча лишней фигни. я бы сделал примерно так (код подправьте сами:)

if ((int)ts.TotalMinutes < 0)  // опаздывает, красного цвета строка
{
    timeString = "<span class='color" + ts.TotalMinutes + "'>Опаздывает на : ";
    switch (ts.Days)
    {
        case 0:
            HH = ts.Hours.ToString();
            MM = ts.Minutes.ToString().....;
            return "<span>" + timeString "</span>" + ....;
        default:
            HH = ts.Hours.ToString();
            MM = ts.Minutes.ToString()......;

            if (....) { ..... }
            return "<span>" + timeString "</span>" + ....;
    }
}

и расцветку сделал стилями:

span[class^="color-"] > span {color:red} 
/* у опаздывающих ts меньше нуля, класс будет со знаком минус, типа color-17 */
span:not([class^="color-"]) > span {color:black}

Это, разумеется, не отменяет того, что вам рекомендовал @EvgeniyZ в комментариях.