Применение встроенного CSS к серверному элементу управления ASP.NET - PullRequest
13 голосов
/ 18 сентября 2008

Основываясь на простом тесте, который я провел, я не думаю, что можно вставить встроенный тег

Ответы [ 4 ]

47 голосов
/ 18 сентября 2008

Intellisense не будет давать вам подсказки, но вы можете сделать это:

<asp:Label ID="Label1" runat="server" Text="Label" style="color:Red;"></asp:Label>
13 голосов
/ 18 сентября 2008

По данным www.w3schools.com :

Элемент стиля находится в разделе head. Если вы хотите включить таблицу стилей на свою страницу, вы должны определить таблицу стилей внешне и сделать ссылку на нее, используя <link>.

Так что не стоит включать элементы стиля (например, блок <style type="text\css"></style>) в элемент управления. Если бы вы могли, это, вероятно, дало бы эффект в некоторых браузерах, но это не подтвердило бы и является плохой практикой.

Если вы хотите применить встроенные стили к элементу, то подойдет любой из них:

C #

myControl.Attributes["style"] = "color:red";

myControl.Attributes.Add("style", "color:red");

VB.NET

myControl.Attributes("style") = "color:red";

myControl.Attributes.Add("style", "color:red");

Но имейте в виду, что это заменит любые существующие стили, которые установлены в атрибуте стиля . Это может быть проблемой, если вы попытаетесь установить стили в более чем одном месте кода, так что стоит обратить внимание.

Было бы предпочтительнее использовать классы CSS, поскольку вы можете группировать несколько объявлений стилей и избегать избыточности и раздувания страниц. Все элементы управления, полученные из WebControl , имеют свойство CssClass , которое вы можете использовать, но, опять же, будьте осторожны, чтобы не перезаписать существующие классы, которые были применены в других местах.

7 голосов
/ 30 июня 2014

Если вы используете Attributes ["style"], вы перезаписываете стиль каждый раз, когда вызываете его. Это может быть проблемой, если вы делаете вызов в двух разных разделах кода. Кроме того, это может быть проблемой, потому что структура включает в себя свойства для основных параметров, таких как границы и цвет, которые также будут применяться как встроенные стили. Вот пример:

// wrong: first style will be overwritten
myControl.Attributes["style"] = "text-align:center";
// in some other section of code
myControl.Attributes["style"] = "width:100%";

Чтобы играть хорошо, установите вместо этого стили:

// correct: both style settings are applied
myControl.Attributes.CssStyle.Add("text-align", "center");
// in some other section of code
myControl.Attributes.CssStyle.Add("width", "100%");
1 голос
/ 18 сентября 2008

Я думаю, вам придется добавить его в качестве атрибута для серверного элемента управления ... чтобы он отображался в HTML.

Так что в основном (в C #),

ControlName.Attributes["style"] = "color:red";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...