ASP.NET 站点地图不使用 asp:repeater 显示子节点
上面是我的 ASP.NET 代码
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<ul>
<asp:Repeater runat="server" ID="menuRepeater" DataSourceID="SiteMapDataSource1">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>' />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
,这里是站点地图
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Homepage">
<siteMapNode url="~/Login.aspx" title="Login"/>
<siteMapNode url="~/News.aspx" title="News"/>
<siteMapNode url="~/Preferences.aspx" title="Preferences"/>
</siteMapNode>
</siteMap>
上面代码的问题是它只显示父节点 (~/Default.aspx),但是当我使用 Menu 或 TreeView 控件并指定 SiteMapDataSource 时,一切正常适当地。你能指出我错在哪里吗?
The above is my ASP.NET code
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<ul>
<asp:Repeater runat="server" ID="menuRepeater" DataSourceID="SiteMapDataSource1">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>' />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
and here is the sitemap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Homepage">
<siteMapNode url="~/Login.aspx" title="Login"/>
<siteMapNode url="~/News.aspx" title="News"/>
<siteMapNode url="~/Preferences.aspx" title="Preferences"/>
</siteMapNode>
</siteMap>
The problem with above code is that it only shows the parent node (~/Default.aspx), however when I use the Menu or TreeView control and specify the SiteMapDataSource, everything works properly. Can you please spot where am I wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 SiteMapDataSource 标记中设置 ShowStartingNode="false"。
set ShowStartingNode="false" in SiteMapDataSource markup.
Vijay 的建议和评论链接最终也为我提供了答案。
摘要版本是嵌套中继器,以及 ShowStartingNode=false 设置。为了后代的缘故,来自上面链接的代码:
Vijay's suggestion and comment link eventually provided the answer for me as well.
The summary version is nested repeaters, as well as the ShowStartingNode=false setting. For posterity's sake, code from the above link: