Como você modifica um estilo CSS no arquivo code-behind para divs no ASP.NET?


96

Estou tentando modificar um atributo de estilo CSS para um div com base nas informações que obtenho de uma tabela de banco de dados no código por trás da minha página aspx. O que se segue é essencialmente o que estou tentando fazer, mas recebo erros.

Aspx:

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

Código por trás:

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

O que estou fazendo de errado?

Respostas:


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

6
testSpace.Attributes.Add ("style", "display: none;"); também funcionaria.
Robert C. Barth,

2
Não tenho tanta certeza, Robert, acho que esta linha substituirá o estilo existente pelo novo em vez de mesclar os dois estilos.
Necriis

1
De forma útil, isso substitui um estilo existente, por exemplo, você pode querer mudar completamente um atributo de classe.
Andrew Morton

74

É um HtmlGenericControl, portanto, não tenho certeza de qual é a maneira recomendada de fazer isso, então você também pode fazer:

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

ou

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

ou

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

ou

testSpace.Attributes["class"] = "centerIt";

15

Outra maneira de fazer isso:

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

ou

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

em vb.net você pode fazer desta forma:

testSpace.Style.Item("display") = "none"

Tive problemas ao usar testSpace.Style.Item("display") = "none";em um controle de rótulo no .NET 4.0. Eu entendi o erro 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . Isso é específico para uma determinada versão do .NET?
Adam Miller

1
sinto muito. o primeiro foi a abordagem VB.net. vou editar minha resposta
Nikolaj Zander,

0

Se você estiver newcriando um elemento com sintaxe de inicializador , poderá fazer algo assim:

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

Ou se estiver usando CssStyleCollectionespecificamente:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.