スタイルA:Hover
をコードビハインドからHyperLinkコントロールに追加したい。
私はこのようにすることができます:
HyperLink hlRow = new HyperLink();
hlRow.Style.Add("color", "#000000");
hlRow.Style.Add("text-decoration", "none");
しかし、ハイパーリンクコントロールにA:Hover
のスタイルを追加するにはどうすればよいですか?クラスを定義して、そのクラスをこのコントロールに関連付ける必要がありますか?
:hover
はセレクターであり、スタイルではありません。この例で行っていることは、要素にインラインスタイルを追加することであり、それに相当するセレクターは明らかにあまり意味がありません。
クラスをリンクに追加できます:hlRow.CssClass = 'abc';
そして、クラスを次のように定義します。
a.abc:hover {
...
}
ハイパーリンクのCssClassプロパティを使用できます。
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";
使用する
HyperLink hlRow = new HyperLink();
hlRow.Attributes.Add("Style", "color:#000000");
これを試して:
Htmlマークアップ
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#">HyperLink</asp:HyperLink>
コード
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");
}
また、aspxページにAutoEventWireup="true"
とAutoEventWireup="false"
ダウンロードできるファイルがない場合は、asp:linkButtonを無効にしてグレーに変更し、ホバーの下線を削除する必要がありました。これはうまくいきました:
.disabled {
color: grey;
text-decoration: none !important;
}
LinkButton button = item.FindControl("lnkFileDownload") as LinkButton;
button.Enabled = false;
button.CssClass = "disabled";
できません。
したがって、そのようなスタイルを直接適用せず、クラス「foo」を適用してから、CSS仕様で定義します。
a.foo { color : orange; }
a.foo:hover { font-weight : bold; }