Как изменить стиль CSS в коде файла для div в ASP.NET?

96

Я пытаюсь изменить атрибут стиля CSS для div на основе информации, которую я получаю из таблицы базы данных в коде за моей страницей aspx. По сути, я пытаюсь сделать следующее, но получаю ошибки.

Aspx:

<div id="testSpace" runat="server">
    Test
</div>

Код позади:

testSpace.Style = "display:none;"    
testSpace.Style("display") = "none";

Что я делаю не так?

EverTheLearner
источник

Ответы:

155
testSpace.Style.Add("display", "none");
Энди Уайт
источник
6
testSpace.Attributes.Add ("стиль", "отображение: нет;"); тоже будет работать.
Роберт С. Барт,
2
Не уверен, Роберт, я думаю, эта строка заменит существующий стиль новым, а не объединит оба стиля.
Necriis
1
Полезно, что это заменяет существующий стиль, например, вы можете захотеть полностью изменить атрибут класса.
Эндрю Мортон
74

Это HtmlGenericControl, поэтому вы не знаете, какой это рекомендуемый способ, поэтому вы также можете сделать:

testSpace.Attributes.Add("style", "text-align: center;");

или

testSpace.Attributes.Add("class", "centerIt");

или

testSpace.Attributes["style"] = "text-align: center;";

или

testSpace.Attributes["class"] = "centerIt";
Nickytonline
источник
15

Другой способ сделать это:

testSpace.Style.Add("display", "none");

или

testSpace.Style["background-image"] = "url(images/foo.png)";

в vb.net это можно сделать так:

testSpace.Style.Item("display") = "none"
Николай Зандер
источник
У меня возникли проблемы с использованием testSpace.Style.Item("display") = "none";элемента управления меткой в ​​.NET 4.0. Я получил ошибку 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . Это относится к конкретной версии .NET?
Адам Миллер,
1
я прошу прощения. первым был подход VB.net. я отредактирую свой ответ
Николай Зандер
0

Если вы newдобавляете элемент с синтаксисом инициализатора , вы можете сделать что-то вроде этого:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Attributes = { ["style"] = "min-width: 35px;" }
    },
  }
};

Или, если вы используете CssStyleCollectionспециально:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
килл-байт
источник