asp: LinkButtonハイパーリンクを制御するCSSがいくつかあり、MasterPageが読み込まれるたびに現在のページにWebControlのCssClassプロパティを設定する方法を知りたいです。
MasterPage上のこれらのasp:LinkButtonハイパーリンクは、リストに含まれています。
<ul id="menu">
<li class="sprite">
<asp:LinkButton ID="linkButton1" runat="server" PostBackUrl="~/linkButton1.aspx">
<span>link 1</span>
</asp:LinkButton>
</li>
<li class="sprite">
<asp:LinkButton ID="linkButton2" runat="server" PostBackUrl="~/linkButton2.aspx">
<span>link 2</span>
</asp:LinkButton>
</li>
<li class="sprite">
<asp:LinkButton ID="linkButton3" runat="server" PostBackUrl="~/linkButton3.aspx">
<span>link 3</span>
</asp:LinkButton>
</li>
</ul>
MasterPageで、Page_Loadイベントを使用してCssClassを設定しようとしました。
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
linkButton1.CssClass = "";
linkButton2.CssClass = "";
linkButton3.CssClass = "";
string linkButtonID = Request.RawUrl;
if (-1 < linkButtonID.IndexOf("linkButton2")) {
linkButton2.CssClass = "active";
} else if (-1 < linkButtonID.IndexOf("linkButton3")) {
linkButton3.CssClass = "active";
} else {
linkButton1.CssClass = "active"; // default
}
}
}
MyCssClass="active"
が設定されていないようです。ページのソースを見ると、LinkButtonコントロールのいずれにもCssClassプロパティが設定されていないことがすぐにわかります。
これは視覚化するのが難しいので、jsFiddleをまとめました。このサイトはASPをサポートしていませんが、私が達成しようとしていることを視覚化するのに役立つ場合があります。
http://jsfiddle.net/jp2code/kZQwC/
アクティブページでCssClassを設定するにはどうすればよいですか?