[英]Assign CssClass to LinkButton in MasterPage
我有一些CSS可以控制asp:LinkButton超链接,并且我想找出每当加载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
}
}
}
我的CssClass="active"
似乎从未设置过,并且查看页面源代码会迅速验证我的LinkButton控件均未设置CssClass属性。
由于这很难想象,所以我整理了一个jsFiddle。 该网站不支持ASP,但可以帮助您直观地了解我要完成的工作:
http://jsfiddle.net/jp2code/kZQwC/
如何获得我的活动页面来设置CssClass?
您在!IsPostBack
中分配了类,恐怕您的网址当时没有linkButton1,linkButton2或linkButton3。
您class assignment code out of the if condition
并检查是否已执行了这些条件并获取了该类。
更改
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
}
}
至
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.