Comment modifier un style CSS dans le code derrière le fichier pour les divs dans ASP.NET?


96

J'essaie de modifier un attribut de style CSS pour un div basé sur les informations que j'obtiens d'une table de base de données dans le code derrière ma page aspx. Ce qui suit est essentiellement ce que j'essaie de faire, mais j'obtiens des erreurs.

Aspx:

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

Code derrière:

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

Qu'est-ce que je fais mal?

Réponses:


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

6
testSpace.Attributes.Add ("style", "display: none;"); fonctionnerait également.
Robert C. Barth

2
Pas si sûr Robert, je pense que cette ligne remplacera le style existant par le nouveau au lieu de fusionner les deux styles.
Necriis

1
Utilement, cela remplace un style existant, par exemple vous pourriez vouloir changer complètement un attribut de classe.
Andrew Morton

74

C'est un HtmlGenericControl, donc vous ne savez pas quelle est la manière recommandée de le faire, vous pouvez donc également faire:

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

ou

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

ou

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

ou

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

15

Une autre façon de le faire:

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

ou

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

dans vb.net, vous pouvez le faire de cette façon:

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

J'ai eu du mal à utiliser testSpace.Style.Item("display") = "none";sur un contrôle d'étiquette dans .NET 4.0. J'ai eu l'erreur 'System.Web.UI.CssStyleCollection' does not contain a definition for 'Item' . . . . Est-ce spécifique à une version .NET particulière?
Adam Miller

1
je suis désolé. le premier était l'approche VB.net. Je vais éditer ma réponse
Nikolaj Zander

0

Si vous newinstallez un élément avec la syntaxe d'initialisation , vous pouvez faire quelque chose comme ceci:

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

Ou si vous utilisez CssStyleCollectionspécifiquement:

var row = new HtmlTableRow
{
  Cells =
  {
    new HtmlTableCell
    {
        InnerText = text,
        Style = { ["min-width"] = "35px" }
    },
  }
};
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.