Je veux ajouter un style A:Hover
à un contrôle HyperLink à partir du code derrière.
Je peux faire comme ça:
HyperLink hlRow = new HyperLink();
hlRow.Style.Add("color", "#000000");
hlRow.Style.Add("text-decoration", "none");
Mais comment puis-je ajouter des styles pour A:Hover
pour le contrôle d'hyperlien? Dois-je définir une classe et associer cette classe à ce contrôle, si oui comment?
:hover
est un sélecteur et non un style. Dans votre exemple, ce que vous faites est d'ajouter des styles en ligne à un élément, et un équivalent de sélecteur pour cela n'a évidemment pas beaucoup de sens.
Vous pouvez ajouter une classe à votre lien: hlRow.CssClass = 'abc';
Et définissez votre classe comme telle:
a.abc:hover {
...
}
Vous pouvez utiliser la propriété CssClass du lien hypertexte:
LiteralControl ltr = new LiteralControl();
ltr.Text = "<style type=\"text/css\" rel=\"stylesheet\">" +
@".d
{
background-color:Red;
}
.d:hover
{
background-color:Yellow;
}
</style>
";
this.Page.Header.Controls.Add(ltr);
this.HyperLink1.CssClass = "d";
Utilisation
HyperLink hlRow = new HyperLink();
hlRow.Attributes.Add("Style", "color:#000000");
Essaye ça:
balisage HTML
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#">HyperLink</asp:HyperLink>
Code
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
protected void Page_Load(object sender, EventArgs e)
{
Style style = new Style();
style.ForeColor = Color.Green;
this.Page.Header.StyleSheet.CreateStyleRule(style, this, "#" + HyperLink1.ClientID + ":hover");
}
Assurez-vous également que la page aspx contient AutoEventWireup="true"
et pas AutoEventWireup="false"
Si aucun fichier n'est disponible au téléchargement, je devais désactiver l'asp: linkButton, le changer en gris et éliminer le soulignement en survol. Cela a fonctionné:
.disabled {
color: grey;
text-decoration: none !important;
}
LinkButton button = item.FindControl("lnkFileDownload") as LinkButton;
button.Enabled = false;
button.CssClass = "disabled";
Tu ne peux pas.
Donc, n'appliquez pas directement les styles comme ça, et appliquez une classe "foo", puis définissez cela dans votre spécification CSS:
a.foo { color : orange; }
a.foo:hover { font-weight : bold; }