Wie kann ich den css Attribut Wert zur Laufzeit wie alle H1 Farbe = "blau" und alle p Farbe = "grün" ändern. Wenn jemand es weiß, bitte hilf mir!dynamisch ändern css Attribut Wert in asp.net
Antwort
Ziemlich einfach (ich nehme an, Sie diese Server-Seite tun wollen) - erklären die Überschrift als runat = Server und geben Sie ihm eine ID:
<h1 runat="server" id="someHeading">Blah</h1>
Dann können Sie programmatisch im Code manipulieren hinter so wie:
someHeading.Style.Add("color", "blue");
Dies wird den folgenden HTML-render:
<h1 id="someHeading" style="color:blue;">Blah</h1>
vielleicht möchten Sie tun Dies unterscheidet und definiert die Stile in einem Stylesheet und ändert die Klasse dynamisch zur Laufzeit.
Update-, wie Sie es dynamisch ändern, könnte die folgende sinnvoller sein:
someHeading.Style["color"] = "red";
Ich bin sicher, dass jemand anderes eine Antwort mit gebucht werden, wie es zu tun Client-Seite. :-)
Eine andere (vielleicht bessere) Option, um in Server-Seite zu schauen, verwendet Skins und Themen. Lesen Sie die ASP.NET FAQ über diese, um mehr zu erfahren.
In JQuery können Sie einfach
$('h1').css("color","blue");
Die ASP.Net Code-Behind verwendet keine Selektor CSS mehrere HTML-Tags anwenden müssen, weil die HTML nur einmal die meisten der Code generiert wird ausgeführt. Dies geschieht im Page_PreRender-Ereignis.
Was Sie tun könnten, ist das gerenderte HTML zu bekommen und einige Suchen und/oder Modifikationen durchzuführen, ob es reguläre Ausdrücke oder einfache Suche ersetzt.
Ich würde Ihnen raten, dies mit JavaScript zu tun, obwohl die Änderung des gerenderten HTML im Page_PreRender-Ereignis etwas ist, was Sie später definitiv Probleme bereiten wird und grundsätzlich nicht gemacht wird.
Wenn Sie es mit mehreren Steuerelementen auf dem Server tun, wäre es einfach, dies zu tun, indem Sie das Skin/Theme dynamisch ändern. – RichardOD
Ich glaube, er bedeutet zu jedem Punkt auf der Seite. Ich würde empfehlen, eine wörtliche in den Header nur nach der aktuellen Stylesheets hinzufügen, dann einen Inline-Stil mit dem folgenden Code hinzufügen:
<asp:Literal ID="litInlineStyles" runat="server" EnableViewState="false" Visible="false">
<style type="text/css">
h1
{
color: {h1Colour}
}
p
{
color: {pColour}
}
</style>
</asp:Literal>
ich absichtlich den Ansichtszustand und visbility deaktiviert haben, so dass Sie jedes Mal die Seite deklarieren lädt, was ersetzt werden soll {h1Colour} mit und {pColour} und setzt das Literal auf sichtbar.
Das sollte Ihnen helfen, in die richtige Richtung zu zeigen.
Ich sollte beachten, dies ist ideal für eine einzige Seite nur beheben, wenn Sie etwas global tun würde ich wahrscheinlich Themen verwenden. –
Bitte versuchen Sie folgenden Code, würde ich für Sie arbeiten:
someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
Wo tun Sie dies tun wollen? Javascript verwenden? in deinem Codebehind? mit welcher Sprache? vb? C#? PS: Je mehr relevante Tags Sie liefern, desto mehr Leute mit den richtigen Fähigkeiten werden Sie anziehen. – Peter