У WOLV имеется свойство

public IList<TextStylization> Stylizations;

Оно дает возможность применять к строкам WOLV определенные css-классы в зависимости от значений в столбцах. Чаще всего используется для раскраски строк.

Подсветка по строковым полям

Есть возможность раскрашивать строки, используя лямбды.

Пример:

var stylization = new TextStylization(string.Empty, new TextStyle[0]);
stylization.ColumnName = "PKОценившихЭкспертов";

var currUserPK = Utils.GetCurrentUser().__PrimaryKey.ToString().Replace("{", string.Empty).Replace("}", string.Empty);

stylization.LambdaStyle =
    val =>
    string.IsNullOrEmpty(val) || !val.ToUpper().Contains(currUserPK.ToUpper())
        ? "wolv-current-user"
        : null;

WebObjectListView1.Stylizations.Add(stylization);

Пример: cписок, у которого есть столбец Семья.КоличЧленовСемьи. Нужно раскрасить зеленым, если членов семьи 2, коричневым - 3, черным - 4.

var two = new TextStyle("2", "WOLV-color-Green");
var three = new TextStyle("3", "WOLV-color-Brown");
var four = new TextStyle("4", "WOLV-color-Black");

WebObjectListView1.Stylizations.Add(new TextStylization(
    "Семья.КоличЧленовСемьи",
    new[] { two, three, four });

CSS:

tr.WOLV-color-Green td{
    color: green !important;
}

tr.WOLV-color-Brown td{
    color: brown !important;
}

tr.WOLV-color-Black td{
    color: black !important;
}

Несколько стилей

Следует обратить внимание на то, что если к строке применено несколько стилей, задающих одно и то же свойство (например, цвет), то будет применен тот стиль, который наиболее поздно описан в .css файле.

Если изменить приведенный выше пример, добавив еще один стиль:

var countStylization = new TextStylization(string.Empty, new TextStyle[0]);
stylization.ColumnName = "PKОценившихЭкспертов";

var currUserPK = Utils.GetCurrentUser().__PrimaryKey.ToString().Replace("{", string.Empty).Replace("}", string.Empty);

countStylization.LambdaStyle =
    val =>
    string.IsNullOrEmpty(val) || !val.ToUpper().Contains(currUserPK.ToUpper())
        ? "wolv-current-user"
        : null;

WebObjectListView1.Stylizations.Add(countStylization);

var regionStylization = new TextStylization(string.Empty, new TextStyle[0]);
stylization.ColumnName = "ОрганУчета";

regionStylization.LambdaStyle =
    val =>
    !string.IsNullOrEmpty(val) && val.Equals(“Краснокамский район”)
        ? "wolv-color-Red"
        : null;

WebObjectListView1.Stylizations.Add(regionStylization);

и если в .css-файле стиль wolv-color-Red описан после остальных, то в результате:

Подсветка по полям типа bool

Для раскрашивания строк по полю типа bool используйте лямбда-выражение:

var stylization = new TextStylization(Information.ExtractPropertyPath<ТипСПолемBool>(x => x.ПолеТипаBool),
                          new TextStyle[0])
{
    LambdaStyle =
        val =>
        !string.IsNullOrEmpty(val) && val.ToUpper().Contains("TRUE")
            ? "WOLV-color-Green"
            : "WOLV-color-Black"
};
WebObjectListView1.Stylizations.Add(stylization);

Если нужно раскрасить конкретную ячейку, то необходимо встраивать web-контрол. Web-контрол должен реализовывать интерфейс ICSSoft.STORMNET.Web.Tools.WOLVFeatures.IWebObjectListViewCompatible. В свойстве TableCellCssClass возвращается класс, который применится к ячейке с заданным web-контролом.

Настройка внешнего вида таблиц в теме BlueSky

В тему BlueSky были добавлены 2 варианта раскраски таблиц:

  • Вид таблицы по умолчанию:

  • Классический вид таблицы:

По умолчанию используется новый стиль с вертикальной зеброй, для того чтобы изменить раскраску на классическую нужно в _VariablesBasic.less изменить значение переменной @BlueSkyTableStyle на false.