【问题标题】:How do you get the asp:Menu to follow the url provided in the Web.sitemap?你如何让 asp:Menu 遵循 Web.sitemap 中提供的 url?
【发布时间】:2010-09-09 23:18:10
【问题描述】:

我有一个简单的asp:menu-item,它使用Web.sitemap 来获取菜单项。该页面将回发,但无法获取与单击项目关联的页面。我会提到导航条代码在母版页文件中。

<div>
  <asp:SiteMapDataSource ID="SiteMapDataSource1"  ShowStartingNode="false" runat="server" />
  <asp:Menu ID="Menu1" Orientation="horizontal"  runat="server" BackColor="#a0a080" DataSourceID="SiteMapDataSource1"
      DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#a00000"
      StaticSubMenuIndent="10px" Style="z-index: 2; left: 390px; position: absolute;
      top: 281px" Height="20px" Width="311px">
      <StaticSelectedStyle BackColor="#a0a080" />
      <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
      <DynamicHoverStyle BackColor="#a0a080" ForeColor="White" />
      <DynamicMenuStyle BackColor="#a0a080" />
      <DynamicSelectedStyle BackColor="#a0a080" />
      <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
      <DataBindings>
          <asp:MenuItemBinding DataMember="SiteMapNode" EnabledField="Title" TextField="Title" />
      </DataBindings>
      <StaticHoverStyle BackColor="#666666" ForeColor="White" />
  </asp:Menu>
</div>    

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >  
  <siteMapNode url="" title=""  description="">  
    <siteMapNode title="Home"  description="Zombie (be)Warehouse" url="index.aspx" />  
    <siteMapNode title="Armor" description="Anti-Zombie Armor" url="Armor.aspx" />  
    <siteMapNode title="Weapons" description="Anti-Zombie Weapons" url="Weapons.aspx" />  
    <siteMapNode title="Manuals" description="Survival Manuals" url="Manuals.aspx" />  
    <siteMapNode title="Sustenance" description="Prepared food for survival" url="Sustenance.aspx" />  
    <siteMapNode title="Contacts"  description="Contact Us"  url="Contacts.aspx" />  
    <siteMapNode title="About" description="About Zombie (be)Warehouse" url="About.aspx" />  
  </siteMapNode>  
</siteMap>

更新: 在菜单项的DataBindings 部分发现了问题。注意这一行:

<asp:MenuItemBinding DataMember="SiteMapNode" EnabledField="Title" Text="Title" />

Text="Title" 设置来自Web.sitemap 的文本字段的菜单显示文本。我注意到MenuItemBinding 项目有一个名为NavigateUrlField 的字段。

所以要解决这个问题,您只需更改/添加到asp:MenuItemBinding

<asp:MenuItemBinding DataMember="SiteMapNode" NavigateUrlField="url" EnabledField="Title" TextField="Title" />

【问题讨论】:

  • 听起来你的问题已经解决了?如果是这样,干得好!

标签: asp.net sitemap


【解决方案1】:

您需要像这样&lt;asp:MenuItemBinding DataMember="SiteMapNode" EnabledField="Title" TextField="Title" NavigateUrlField="url"/&gt;NavigateUrlField 字段添加到MenuItemBinding

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2010-09-10
    • 2014-02-25
    • 2014-05-17
    相关资源
    最近更新 更多