[英]How to dynamically add CSS to a menu on click in C#
我想在不使用 15 个不同的 if-else 语句的情况下动态地向我的菜单添加样式。 也许是一个for循环?
`
C#
String activepage = HttpContext.Current.Request.Url.AbsolutePath;
if (activepage.Contains("Cops"))
{
activateCOPS.Attributes.Add("class", "nav-link active");
}
else if (activepage.Contains("Opac"))
{
activateOPAC.Attributes.Add("class", "nav-link active");
}
else if (activepage.Contains("Etp-Tps"))
{
activateETP_TPS.Attributes.Add("class", "nav-link active");
}
else if (activepage.Contains("Eta"))
{
activateETA.Attributes.Add("class", "nav-link active");
}... etc.
HTML:
<li class="nav-item">
<a id="activateCOPS" class="nav-link" runat="server" href="Cops.aspx">COPS</a>
</li>
<li class="nav-item">
<a id="activateOPAC" class="nav-link" runat="server" href="Opac.aspx">OPAC</a>
</li>
`
提前致谢!
您可以执行以下操作:
var themes = new Dictionary<string, Func<string[], bool>
{
{"Employee", SetEmployeeSiteTheme },
{"Government", SetGovermentSiteTheme}
}
if(themes.ContainsKey("Employee"))
themes[key].Invoke("Some markup?");
然后在这些方法中,您可以找到您的控件,您可以修改标记,您不会生成一千个 if 语句,您可以稍后根据需要扩展功能。
这将是一个更好的结构来控制我脑海中的多个布局,这就是我可以解决您的问题的方式。 显然我没有创建一个可行的解决方案,我只是展示了一种可行的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.