簡體   English   中英

如何在 C# 中單擊時將 CSS 動態添加到菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM