2009-03-08 10 views
2

ich verschiedenen CSS-Stil ist, von denen ist:Festlegen eine Klasse für einen DIV, die ein Server-Steuerelement

#layoutsectiondiv{ 
    border: 2px dashed #000000; 
    padding: 1px; 
    left: 0px; 
} 

ich eine aspx Seite habe:

<div id="testDiv" runat="server"> 

</div> 

Wenn es regelmäßig HTML, ich würde den Stil eines div gesetzt durch eine

<div id="layoutsectiondiv"> 

</div> 

zur Laufzeit zu tun (in Code-behind), muss ich verschiedene Stile der dIV dynamisch zuzuweisen. Wie würde ich es tun?

Antwort

4

Verwenden Sie die Klasseneigenschaft und ändern Sie Ihre CSS-Stile, um Klassenselektoren anstelle von ID-Selektoren zu verwenden. Zum Beispiel

.layoutsectiondiv{} 

<div id="testDiv" class="layoutsectiondiv"> 
</div> 

bearbeiten

Machen Sie Ihre Klasse nur so, dass Sie es auf die spezifischen divs anwenden Sie wollen. Verwende deine Klassen nicht wieder. Dies sollte einfach sein, da Ihre CSS bereits an eine bestimmte ID gebunden ist, legen Sie einfach diese Klasse auf dieses Element.

Wenn Sie diese Klasse für viele Arten von Elementen verwenden, würde das, was Sie vorgeschlagen haben, gut funktionieren.

+0

die CSS-ID-Selektor und asp.net nicht sehr gut mischen, da .net verwaltet/mangles die ID zur Laufzeit. – NotMe

+0

Wenn ich einen Klassenselektor verwende, wie stelle ich sicher, dass er nur für dieses DIV angewendet werden kann? Ich denke, ich kann die Verwendung auf ein beliebiges DIV beschränken, indem ich a: div.layoutsectiondiv {} richtig? – DotnetDude

3

Josh hat Recht, Sie sollten Klasse statt ID verwenden.

für Ihre Frage:

Zur Laufzeit (in Code-behind), muss ich dynamisch verschiedene Stile die DIV zuweisen. Wie würde ich es tun?

versuchen Sie dies:

// layoutsectiondiv is defined as class : .layoutsectiondiv{} 
testDiv.Attributes["class"] = "layoutsectiondiv"; 
+0

Wenn ich einen Klassenselektor verwende, wie stelle ich sicher, dass er nur für dieses DIV angewendet werden kann? Ich schätze, ich kann die Verwendung auf jedes DIV beschränken, indem ich a: div.layoutsectiondiv {} richtig mache? – DotnetDude

+0

Ja, div.layoutsectiondiv {} beschränkt die ID 'layoutsectiondiv', die nur von divs verwendet wird. Aber wenn Sie möchten, dass der Stil nur das gewünschte div angewendet wird, sollten Sie vielleicht das Attribut style verwenden? – Canavar

3

So haben Sie eine CSS-ID-Selektor auf diese Weise nutzen könnten.

#layoutsectiondiv { color: red } 

mit den folgenden HTML

<div id="layoutsectiondiv">  
</div> 

oder eine CSS-Klasse HTML-Selektor wie diese.

.layoutsectiondiv { color: blue } 

mit den folgenden HTML

<div class="layoutsectiondiv"> 
</div> 

Wenn Sie den Stil eines bestimmten .net Steuerung steuern möchten, dh eine, die die runat = „server“ -Attribut hat, dann, wie wir wissen, .net wird die ID "mangle" um sicherzustellen, dass es einzigartig ist.

In diesem Fall in unserem Code können wir Findcontrol verwenden, um die div zuzugreifen und seinen Stil

<div id="testDiv" runat="server"> 
</div> 

dh ändern.

 HtmlGenericControl testDiv = 
      (HtmlGenericControl)Page.FindControl("testDiv"); 

     // to hide 
     testDiv.Attributes.Add("style", "display: none"); // OR 
     testDiv.Attributes["style"] = "display: none"; 

     // to show 
     testDiv.Attributes.Add("style", "display: block"); // OR 
     testDiv.Attributes["style"] = "display: block"; 

     // or to add a class 
     testDiv.Attributes.Add("class", "MyCssClassName"); // OR 
     testDiv.Attributes["class"] = "MyCssClassName"; 

Hier ist eine gute Erklärung für den Unterschied zwischen CSS-ID und Klasse - CSS: div id VS. div class.

Und hier für How to edit CSS style of a div using C# in .NET

Verwandte Themen