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.