Jak zmodyfikować styl CSS w kodzie pliku dla elementów div w ASP.NET?

96

Próbuję zmodyfikować atrybut stylu CSS dla elementu div na podstawie informacji, które otrzymuję z tabeli bazy danych w kodzie za moją stroną aspx. Poniżej opisano zasadniczo to, co próbuję zrobić, ale pojawiają się błędy.

Aspx:

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

Kod za:

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

Co ja robię źle?

EverTheLearner
źródło

Odpowiedzi:

155
testSpace.Style.Add("display", "none");
Andy White
źródło
6
testSpace.Attributes.Add ("style", "display: none;"); również zadziała.
Robert C. Barth
2
Nie jestem pewien, Robert, myślę, że ta linia zastąpi istniejący styl nowym, zamiast łączyć oba style.
Necriis
1
Pożytecznie zastępuje to istniejący styl, np. Możesz chcieć całkowicie zmienić atrybut klasy.
Andrew Morton,
74

Jest to HtmlGenericControl, więc nie wiesz, jaki jest zalecany sposób, aby to zrobić, więc możesz również zrobić:

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

lub

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

lub

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

lub

testSpace.Attributes["class"] = "centerIt";
nickytonline
źródło
15

Inny sposób na zrobienie tego:

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

lub

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

w vb.net możesz to zrobić w ten sposób:

testSpace.Style.Item("display") = "none"
Nikolaj Zander
źródło
Miałem problem z używaniem testSpace.Style.Item("display") = "none";kontrolki etykiety w .NET 4.0. Mam błąd 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . Czy jest to specyficzne dla określonej wersji .NET?
Adam Miller
1
przepraszam. pierwszym z nich było podejście VB.net. edytuję swoją odpowiedź
Nikolaj Zander
0

Jeśli tworzysz newelement ze składnią inicjalizatora , możesz zrobić coś takiego:

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

Lub jeśli używasz CssStyleCollectionspecjalnie:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
killa-bajt
źródło