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?

Odpowiedzi:


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

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";

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"

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" }
    },
  }
};
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.