DataBinding: 'System.Web.SiteMapNode' 不包含 属性
DataBinding: 'System.Web.SiteMapNode' does not contain a property
我想将字形图标添加到我使用 <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' does not contain a property with the name 'glyphicon'.
如果没有 glyphicon 实现,我其他一切工作正常。
我知道您的站点地图节点中可能有自定义属性,因为有人在此 Stack Overflow post.
中实现了它
所以我一定是在我的客户实施中做错了什么。实现这个的正确方法是什么?
经过一番研究,我发现您可以通过这种方式访问自定义属性:
<%# Eval("[attributeName]") %>
利用这些知识,我已经像这样在我的代码中实现它以使其正常工作:
<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" />
我想将字形图标添加到我使用 <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' does not contain a property with the name 'glyphicon'.
如果没有 glyphicon 实现,我其他一切工作正常。
我知道您的站点地图节点中可能有自定义属性,因为有人在此 Stack Overflow post.
中实现了它所以我一定是在我的客户实施中做错了什么。实现这个的正确方法是什么?
经过一番研究,我发现您可以通过这种方式访问自定义属性:
<%# Eval("[attributeName]") %>
利用这些知识,我已经像这样在我的代码中实现它以使其正常工作:
<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" />