comment puis-je changer la valeur de l'attribut css au moment de l'exécution comme tous h1 color = "blue" et tout p color = "green". Si quelqu'un le sait, aidez-moi s'il vous plaît!changer dynamiquement la valeur de l'attribut css dans asp.net
Répondre
Assez facile (je suppose que vous voulez faire de ce côté serveur) - déclarer la position que runat = serveur et lui donner un id:
<h1 runat="server" id="someHeading">Blah</h1>
Ensuite, vous pouvez manipuler par programme dans le code derrière comme ceci:
someHeading.Style.Add("color", "blue");
Cela rend le code HTML suivant:
<h1 id="someHeading" style="color:blue;">Blah</h1>
Vous pouvez faire Ceci est différent et définit les styles dans une feuille de style et modifie la classe dynamiquement au moment de l'exécution.
Update- que vous changez de façon dynamique, ce qui suit pourrait être plus approprié:
someHeading.Style["color"] = "red";
Je suis sûr que quelqu'un d'autre va poster une réponse à la façon de le faire côté client. :-)
Une autre (peut-être mieux) option pour regarder dans le côté serveur utilise des skins et des thèmes. Lisez le ASP.NET FAQ pour en savoir plus.
En JQuery, vous pouvez simplement utiliser
$('h1').css("color","blue");
Le codebehind ASP.Net ne pas sélecteur pour appliquer à plusieurs css balises html parce que le HTML est généré uniquement une fois que la plupart du code est exécuté. Cela se produit dans l'événement Page_PreRender.
Ce que vous pouvez faire est obtenir le rendu html et effectuer des recherches et/ou des modifications s'il utilise des expressions régulières ou des remplacements de recherche.
Je vous conseille de le faire en utilisant javascript mais en modifiant le rendu html dans l'événement Page_PreRender est quelque chose qui va certainement vous causer des problèmes plus tard et n'est pratiquement pas fait. Je crois qu'il veut dire à tous les articles sur la page
Si vous le faites à plusieurs contrôles sur le serveur, il serait facile de le faire en changeant dynamiquement la peau/thème. – RichardOD
Je recommande l'ajout d'un littéral dans l'en-tête juste après vos feuilles de style en cours, puis ajoutez un style en ligne avec le code suivant:
<asp:Literal ID="litInlineStyles" runat="server" EnableViewState="false" Visible="false">
<style type="text/css">
h1
{
color: {h1Colour}
}
p
{
color: {pColour}
}
</style>
</asp:Literal>
J'ai délibérément désactivé le viewstate et visbility donc vous devez déclarer chaque fois que la page Charge ce qu'il faut remplacer {h1Colour} avec et {pColour} en plus de définir le littéral pour qu'il soit visible.
Cela devrait vous aider à vous orienter dans la bonne direction.
Je devrais noter ceci est idéalement adapté à une seule correction de page seule, si vous faites quelque chose globalement j'emploierais probablement des thèmes. –
S'il vous plaît essayer le code ci-dessous, je travaillerais pour vous:
someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
Où voulez-vous faire? en utilisant javascript? dans votre codebehind? en utilisant quelle langue? vb? C#? PS: Les tags les plus pertinents que vous fournissez, plus vous attirerez de personnes possédant les bonnes compétences. – Peter