如何在我的ASP.NET菜单中使用Bootstrap样式的BreadCrumb?

Tec*_*ver 5 css c# asp.net twitter-bootstrap

我是一名新的ASP.NET开发人员和Twitter Bootstrap的新用户.我试图在我的ASP.NET应用程序中有一个breadcrumb.我已经开发了它,但我正在尝试应用Twitter Breadcrumb的风格.将特定的CSS样式应用于ASP.NET Web表单控件实在太困难了.

那怎么办呢?

我的ASP.NET代码:

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
        <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"></asp:Menu>
        <asp:SiteMapPath ID="SiteMap1" runat="server" PathSeparator=" > " ParentLevelsDisplayed="1" 
            PathDirection="RootToCurrent" RenderCurrentNodeAsLink="false" ShowToolTips="true"></asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)

Twitter Bootstrap样式的Breadcrumb:

<style>
        .breadcrumb
        {
            padding: 8px 15px;
            margin-bottom: 20px;
            list-style: none;
            background-color: #f5f5f5;
            border-radius: 4px;
        }

            .breadcrumb > li
            {
                display: inline-block;
            }

                .breadcrumb > li + li:before
                {
                    padding: 0 5px;
                    color: #cccccc;
                    content: "/\00a0";
                }

            .breadcrumb > .active
            {
                color: #999999;
            }
    </style>
Run Code Online (Sandbox Code Playgroud)

Fyi,在HTML中,Breadcrumb将被开发如下:

    <ol class="breadcrumb">
        <li><a href="#">Home</a></li>
        <li><a href="#">Library</a></li>
        <li class="active">Data</li>
    </ol>
Run Code Online (Sandbox Code Playgroud)

Jer*_*eck 6

将类添加到服务器控件的最简单方法是添加CssClass =""参数并指定要添加的类,如下所示:

    <asp:SiteMapPath 
        ID="SiteMap1"
        runat="server"
        PathSeparator=" > " 
        ParentLevelsDisplayed="1" 
        PathDirection="RootToCurrent" 
        RenderCurrentNodeAsLink="false" 
        ShowToolTips="true"
        CssClass="breadcrumb">
    </asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)

但是,由于SiteMapPath服务器控件生成标记的方式,您需要对控件以及Bootstrap的breadcrumb类进行一些其他修改.

首先,SiteMapPath服务器控件有一个名为PathSeparator的属性,允许您指定分隔链接的字符.如果未指定,则默认使用和角括号.Bootstrap的breadcrumb类使用正斜杠来分隔链接,因此您需要将PathSeparator属性从PathSeparator =">"更改为PathSeparator ="/".

接下来,您必须为SiteMapPath服务器控件创建一个Node模板.这将告诉SiteMapPath控制每个节点应该遵循的模板,并允许我们告诉它制作li而不是s:

    <asp:SiteMapPath 
        ID="SiteMap1"
        runat="server"
        PathSeparator=" / " 
        ParentLevelsDisplayed="1" 
        PathDirection="RootToCurrent" 
        RenderCurrentNodeAsLink="false" 
        ShowToolTips="true"
        CssClass="breadcrumb">
        <NodeTemplate>
            <li>
                <asp:HyperLink
                    id="lnkPage"
                    Text='<%# Eval("Title") %>'
                    NavigateUrl='<%# Eval("Url") %>'
                    ToolTip='<%# Eval("Description") %>'
                    Runat="server"
                 />
            </li>
        </NodeTemplate>
    </asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)

最后,您需要修改breadcrumb类以在其嵌套中包含SiteMapPath控件的跨度:

            .breadcrumb > span > li
            {
                display: inline-block;
            }

            .breadcrumb > span > li > a:active
            {
                color: #999999;
            }
Run Code Online (Sandbox Code Playgroud)