¿Cómo se modifica un estilo CSS en el código detrás del archivo para divs en ASP.NET?


96

Estoy tratando de modificar un atributo de estilo CSS para un div en función de la información que obtengo de una tabla de base de datos en el código detrás de mi página aspx. Lo siguiente es esencialmente lo que estoy tratando de hacer, pero obtengo errores.

Aspx:

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

Código detrás:

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

¿Qué estoy haciendo mal?

Respuestas:


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

6
testSpace.Attributes.Add ("estilo", "pantalla: ninguno;"); también funcionaría.
Robert C. Barth

2
No estoy tan seguro, Robert, creo que esta línea reemplazará el estilo existente con el nuevo en lugar de fusionar ambos estilos.
Necriis

1
De manera útil, esto reemplaza un estilo existente, por ejemplo, es posible que desee cambiar completamente un atributo de clase.
Andrew Morton

74

Es un HtmlGenericControl, por lo que no estoy seguro de cuál es la forma recomendada de hacerlo, por lo que también puede hacer:

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

o

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

o

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

o

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

15

Otra forma de hacerlo:

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

o

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

en vb.net puedes hacerlo de esta manera:

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

Tuve problemas para usar testSpace.Style.Item("display") = "none";un control de etiqueta en .NET 4.0. Recibí el error 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . ¿Es eso específico de una versión de .NET en particular?
Adam Miller

1
lo siento. el primero fue el enfoque de VB.net. editaré mi respuesta
Nikolaj Zander

0

Si está newcreando un elemento con sintaxis de inicializador , puede hacer algo como esto:

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

O si usa CssStyleCollectionespecíficamente:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.