本来SiteMapPath和Menu都使用Web.sitemap没有问题,但是我的菜单是多根的,于是只能自己写XML:<?xml version="1.0" encoding="utf-8"?>
<System>  <Item Label="首页" Href="Default.aspx" ></Item >  <Item Label="团务知识" Href="" >
    <Option Label="共青团团章"  Href="" />
    <Option Label="共青团团徽"  Href="" />
    <Option Label="共青团团旗"  Href="" />
    <Option Label="共青团团史"  Href="" />
    <Option Label="其他知识"   Href="" />
  </Item>  <Item Label="网站管理"  Href="" >
    <Option Label ="用户管理"  Href="" >
      <Option Label="增加用户"  Href="WZGL_ADD.ASPX" />
      <Option Label="修改用户"  Href="" />
      <Option Label="浏览用户"   Href="" />
     </Option>
  </Item>
    
</System>Memu控件不用Web.sitemap,用这个XML文件很容易做到,
但是我不知道SiteMapPath如何和这个XML文件绑定呢.谢谢

解决方案 »

  1.   

    为什么要多根的呢?其实你可以给一个根它们,然后那个根不定义页面啊。接着,在Menu控件选择隐藏根,这就是你要的效果。至于SiteMapPath则是一定要有根的,因为它没有隐藏根这个选项,而如果你的根不定义地址,那就会显示一个非链接的根。如果你一定要一个隐藏根的SiteMapPath,那就只有自己继承SiteMapPath做一个控件了,我就做过,不过因为就为了隐藏根这个功能,所以实现方法很丑陋。
      

  2.   

    SiteMapdatasource还是非常好用的,楼主的问题非常简单:
    (1)web.sitemap中设置单根,单根下是你要的菜单第一层,也就是你说的多根
    (2)SiteMapDataSource中设置:ShowStartingNode="False" 这个是关键.
    看看结果吧,这是对所有导航控件都管用的方法.
    希望早点结贴,俺想混个一星.
      

  3.   

    补充一下,
    这个设置对SiteMapPath不起做用,因为它不用SiteMapdatasource获取数据源,并且在SiteMapPath上实现多根是个非常不实际的想法.