Come si modifica uno stile CSS nel file code behind per div in ASP.NET?


96

Sto cercando di modificare un attributo di stile CSS per un div in base alle informazioni che ottengo da una tabella di database nel codice dietro la mia pagina aspx. Quello che segue è essenzialmente quello che sto cercando di fare, ma ottengo errori.

Aspx:

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

Codice dietro:

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

Che cosa sto facendo di sbagliato?

Risposte:


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

6
testSpace.Attributes.Add ("style", "display: none;"); funzionerebbe anche.
Robert C. Barth

2
Non sono così sicuro Robert, penso che questa linea sostituirà lo stile esistente con quello nuovo invece di fondere entrambi gli stili.
Necriis

1
Utilmente, questo sostituisce uno stile esistente, ad esempio potresti voler cambiare completamente un attributo di classe.
Andrew Morton

74

È un HtmlGenericControl quindi non sei sicuro di quale sia il modo consigliato per farlo, quindi potresti anche fare:

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

Un altro modo per farlo:

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

o

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

in vb.net puoi farlo in questo modo:

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

Ho avuto problemi a utilizzare testSpace.Style.Item("display") = "none";su un controllo etichetta in .NET 4.0. Ho ricevuto l'errore 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . È specifico per una particolare versione di .NET?
Adam Miller

1
mi dispiace. il primo è stato l'approccio VB.net. modificherò la mia risposta
Nikolaj Zander

0

Se stai newcreando un elemento con la sintassi dell'inizializzatore , puoi fare qualcosa del genere:

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

O se si utilizza CssStyleCollectionspecificamente:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.