将 CSS 样式应用到 Asp:Menu MenuItem

发布于 2024-09-25 06:13:54 字数 633 浏览 3 评论 0原文

我本质上是在创建一个垂直面包屑来为移动(iPhone)网站创建网站导航。类似于 http://news.bbc.co.uk/sport1 /hi/football/default.stm 当您单击“英超联赛”时工作

使用 Asp:Menu 控件和 SiteMapDataSource 我仅绑定站点地图中的当前级别链接,然后找到其父级链接以手动插入列表顶部。生成的导航示例如下: 关于, 我们是谁, 我们做什么, 位置

var mi = new MenuItem();
mi.NavigateUrl = node.Url;
mi.Text = node.Title;
mi.ToolTip = node.Description;

MobileMenu.Items.AddAt(0, mi);

这一切都很好并且工作完美。但是,这个动态插入的顶部 MenuItem 需要采用不同的背景颜色。在上面的示例中,“关于”的背景颜色比其下面的 3 项更深。

但是 MenuItem 上没有任何明显的属性可以执行此操作。

如何在插入位置 0 的 MenuItem 上动态设置样式?

I'm essentially creating a vertical breadcrumb to create a website navigation for a mobile (iphone) website. Similar to maybe how http://news.bbc.co.uk/sport1/hi/football/default.stm works as you click into "Premier League"

Using the Asp:Menu control and a SiteMapDataSource I am binding only the current levels links within the sitemap and then finding their parent to manually insert at the top of the list. An example resulting nav would be:
About,
Who Are We,
What We Do,
Locations

var mi = new MenuItem();
mi.NavigateUrl = node.Url;
mi.Text = node.Title;
mi.ToolTip = node.Description;

MobileMenu.Items.AddAt(0, mi);

This is all fine and works perfectly. However, this dynamically inserted top MenuItem needs to be styled in a different background colour. In the example above "About" would have a darker bg colour than the 3 items below it.

But there isn't any kind of obvious property on the MenuItem to do this.

How could I dynamically set a style on the MenuItem that I am inserting into position 0?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

血之狂魔 2024-10-02 06:13:54

为了回答这个问题,我使用 jQuery li:nth-child() 方法将一个类设置为 li,然后使用 Page.ClientScript.RegisterStartupScript()。

private const string HighlightScript =
        "<script language=\"javascript\">\n" +
        "$(\"ul.top li:nth-child(4)\").addClass(\"menu-Fourth\");" +
        "</script>";

public void AddHighlightScript(string script, string name)
    {
        Page.ClientScript.RegisterStartupScript(GetType(), name, script);
    }

如果其他人有解决方案,请分享。

In answer to this I used the jQuery li:nth-child() method to set a class to the li after which I then use Page.ClientScript.RegisterStartupScript().

private const string HighlightScript =
        "<script language=\"javascript\">\n" +
        "$(\"ul.top li:nth-child(4)\").addClass(\"menu-Fourth\");" +
        "</script>";

public void AddHighlightScript(string script, string name)
    {
        Page.ClientScript.RegisterStartupScript(GetType(), name, script);
    }

If someone else has a solution please share.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文