网站导航用到了SiteMap,但是如果存在多个相同的url节点,就会出错,但是有时候这种情况是要存在的。<siteMapNode url="home.aspx" title="Home"  description="首页">
<siteMapNode url="POSelection.aspx" title="Search by Customer Due Date"  description="列表">
      <siteMapNode url="OrderItem.aspx" title="Order Item"  description="明细" />
</siteMapNode>
<siteMapNode url="OrderItem.aspx" title="Search By P.O."  description="明细" />
<siteMapNode url="SalesRecord.aspx" title="Shipped Order"  description="目录" />
--首页
--列表
    |--明细
--明细
--目录出现2个“明细“,存在相同的url,那么要实现这种情况要怎样做?有什么方法?

解决方案 »

  1.   

    XmlSiteMapProvider 要求站点地图节点具有唯一的 URL。是吧?
    这个是起码的。你的这个地图不合理列表下的明细和外部的明细如果相同功能
    那就没有必要了,这种显示方式不合理
    <siteMapNode url="home.aspx" title="Home"  description="首页">
    <siteMapNode url="POSelection.aspx" title="Search by Customer Due Date"  description="列表">
          <siteMapNode url="OrderItem.aspx" title="Order Item"  description="明细" />
    </siteMapNode>
    <siteMapNode url="OrderItem.aspx" title="Search By P.O."  description="明细" />
    <siteMapNode url="SalesRecord.aspx" title="Shipped Order"  description="目录" />如果是不同功能嵌入到同一OrderItem.aspx文件
    建议将代码提出来单建个页面,或者放入不同文件夹
    <siteMapNode url="home.aspx" title="Home"  description="首页">
    <siteMapNode url="POSelection.aspx" title="Search by Customer Due Date"  description="列表">
          <siteMapNode url="OrderItemChild.aspx" title="Order Item"  description="明细" />
    </siteMapNode>
    <siteMapNode url="OrderItem.aspx" title="Search By P.O."  description="明细" />
    <siteMapNode url="SalesRecord.aspx" title="Shipped Order"  description="目录" />再或者你就在treeview内直接建节点,可以像你那么用
    <asp:TreeView ID="TreeView1" runat="server">
                    <Nodes>
                        <asp:TreeNode NavigateUrl="~/Default.aspx" Text="新建节点" Value="新建节点">
                            <asp:TreeNode NavigateUrl="~/Default.aspx" Text="新建节点" Value="新建节点">
                                <asp:TreeNode NavigateUrl="~/Default.aspx" Text="新建节点" Value="新建节点"></asp:TreeNode>
                            </asp:TreeNode>
                            <asp:TreeNode NavigateUrl="~/Default.aspx" Text="新建节点" Value="新建节点"></asp:TreeNode>
                        </asp:TreeNode>
                    </Nodes>
                </asp:TreeView>
      

  2.   

    siteMap是要唯一的url.
    siteMap的好处在于 他能 根据 节点 。自动创建联接,可以横着显示。树就不能了.多个相同url在实际上是存在的,我那个“明细”只是举个例子.
    --订单
        |--明细
    --生产单
        |--明细以上情况是存在的.如果放在不同的文件夹,那么有多少个这种“明细”就有多少个文件夹。那么就不方便了.如果不用sitemap,那么有什么好的方法实现导航功能
      

  3.   

    实在不行,可以自己写个table
    加链接显示
      

  4.   

    使其页面内容相同,但是地址一定是不同的,sitemap内的url都是唯一的,将一个sitemap放到模板页中,很方便的,不需要每页都用sitemap控件。
      

  5.   


    唯有自己写了,为什么要唯一URL,不知道微软想什么。
      

  6.   

    用TreeVew绑 XmlDataSource,可以实现相同的效果,XML文件可以随便写哦,SiteMap(SiteMapDataSource)也是XML文件,不过要求过高,既用XmlDataSourcexml文件内容如下:
    <siteMapNode ><siteMapNode url="home.aspx" title="Home"  description="首页">
    <siteMapNode url="POSelection.aspx" title="Search by Customer Due Date"  description="列表">
          <siteMapNode url="OrderItem.aspx" title="Order Item"  description="明细" />
    </siteMapNode>
    <siteMapNode url="OrderItem.aspx" title="Search By P.O."  description="明细" />
    <siteMapNode url="SalesRecord.aspx" title="Shipped Order"  description="目录" />
    </siteMapNode >剩下的就盛配XMLDataSource了..........
      

  7.   

    站点地图的url是唯一的!~
    要实现楼主的功能,这个还真的没有试过!~
    等待高手指引!~
      

  8.   

    這種情況竟然無人遇到過?不會吧??用不了siteMap,可以用其它的方法。不知道那種好