【发布时间】:2012-08-10 17:37:59
【问题描述】:
我有一些 CSS 来控制我的 asp:LinkButton 超链接,我想了解如何在 MasterPage 加载时为当前页面设置 WebControl's 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
}
}
}
我的CssClass="active" 似乎从未设置过,查看页面源代码可以快速验证我的所有 LinkButton 控件都没有设置 CssClass 属性。
由于这很难形象化,我整理了一个 jsFiddle。该网站不支持 ASP,但它可以帮助您想象我想要完成的工作:
http://jsfiddle.net/jp2code/kZQwC/
如何让我的 Active Page 设置 CssClass?
【问题讨论】:
-
将您的代码移动到 Page_Init 事件中,如果可以解决问题,请告诉我
标签: c# asp.net html css master-pages