0

我想将 glyphicons 添加到我使用一个<asp:Repeater>和一个web.sitemap文件作为数据源构建的自定义构建菜单中。

这是我尝试过的:

<ul class="nav navbar-nav">
    <asp:Repeater runat="server" ID="rptMenu" DataSourceID="smdsMain">
        <ItemTemplate>
            <li>
                <a runat="server" href='<%# Eval("url") %>'>
                    <span class='glyphicon glyphicon-<%# Eval("glyphicon") %>'></span>
                        <%# Eval("title") %>
                </a>
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>
<asp:SiteMapDataSource ID="smdsMain" runat="server" ShowStartingNode="false" SiteMapProvider="XmlSiteMapProvider" />

这是我的一个节点示例web.sitemap

<siteMapNode url="~/Secure/Home/Default" title="Home" description="Home" glyphicon="home" />

这是我得到的错误。

System.Web.HttpException:DataBinding:“System.Web.SiteMapNode”不包含名为“glyphicon”的属性。

如果没有 glyphicon 实现,我其他一切都可以正常工作。

我知道在您的站点地图节点中可以有一个自定义属性,因为有人在这个Stack Overflow 帖子中实现了它。

所以我必须在我的客户实施中做错了什么。实现这一点的正确方法是什么?

4

1 回答 1

0

After some research I found that you can access custom attributes in this way:

<%# Eval("[attributeName]") %>

Using that knowledge I have implemented into my code like this to get it working:

<ul class="nav navbar-nav">
    <asp:Repeater runat="server" ID="rptMenu" DataSourceID="smdsMain">
        <ItemTemplate>
            <li>
                <a runat="server" href='<%# Eval("url") %>'>
                    <span class='glyphicon glyphicon-<%# Eval("[glyphicon]") %>'></span>
                        <%# Eval("title") %>
                </a>
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>
<asp:SiteMapDataSource ID="smdsMain" runat="server" ShowStartingNode="false" SiteMapProvider="XmlSiteMapProvider" />
于 2017-03-14T10:37:25.223 回答