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?

EverTheLearner
la source

Réponses:

155
testSpace.Style.Add("display", "none");
Andy White
la source
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";
Nickytonline
la source
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"
Nikolaj Zander
la source
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" }
    },
  }
};
killa-byte
la source