У меня есть веб-элемент управления, который я хотел бы изменить класс CSS при определенных условиях.

В идеале я хотел бы написать что-то вроде:

MyMenu.StaticMenuItemStyle.CssClass = (".bgColor", "{background: # ff0000}");

К сожалению, это сторонний элемент управления, который не предоставляет никаких свойств стиля или атрибута. Единственное выставленное свойство - CssClass. Проблема заключается в том, что шестнадцатеричный цвет извлекается из базы данных, поэтому я не могу заранее его предопределить в файле CSS.

РЕДАКТИРОВАТЬ . Я не знаю значения HEX, которое будет использоваться для фона, до тех пор, пока OnPreRender () не получит значение HEX из базы данных. На данный момент мне нужно создать / изменить класс CSS, вставив / обновив значение HEX для фона.

Как я могу программно создать и назначить класс CSS?

0
Pavel 24 Апр 2017 в 04:25

2 ответа

Лучший ответ

Сначала примените класс CSS к своему элементу управления и создайте таблицу стилей в заголовке страницы, как показано ниже

//// Create dynamic style rule which applies to the CSS class selector (".MyCssClass")
Style dynamicClassStyle = new Style();
dynamicClassStyle.BorderStyle = BorderStyle.Solid;
dynamicClassStyle.BorderColor = System.Drawing.Color.Black;
dynamicClassStyle.BorderWidth = new Unit(1);
dynamicClassStyle.BackColor = System.Drawing.Color.White;
Page.Header.StyleSheet.CreateStyleRule(dynamicClassStyle, null, ".MyCssClass");

Полная статья здесь

2
Krishna 24 Апр 2017 в 01:56

Есть несколько способов:

Вариант 1 Сохраните все предопределенные классы CSS для всех возможных цветов фона и выберите один на основе шестнадцатеричного значения БД.

Вариант 2: Создать пустой файл CustomeStyle.css. Добавьте эту ссылку на CSS файл на ваш сайт. Получите шестнадцатеричный код из БД и напишите класс css, открыв файл customstyle.css.

0
Kalyan 24 Апр 2017 в 01:41