sitemap删除节点

时间:2012-06-12 08:02:04

标签: c# asp.net sitemap

我有一个web.sitemap,对于特定情况,我需要从中删除节点<siteMapNode url="~/mainv.aspx" title="MainV" description="">。但我得到的SiteMapNode Collection是只读异常。有没有办法做到这一点。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
  <siteMapNode url="~/default.aspx" title="Home" description="">
    <siteMapNode url="~/main.aspx" title="Main" description="">
      <siteMapNode url="~/mainv.aspx" title="MainV" description="">        
      <siteMapNode url="~/last.aspx" title="Last" description="">
      </siteMapNode>
      </siteMapNode>
    </siteMapNode>
  </siteMapNode>
</siteMap>

代码

protected void SiteMapPath1_ItemDataBound(object sender, SiteMapNodeItemEventArgs e)
{
e.Item.SiteMapNode.ReadOnly = false;
e.Item.SiteMapNode.ChildNodes.RemoveAt(2);
}

编辑:

protected void SiteMapPath1_ItemDataBound(object sender, SiteMapNodeItemEventArgs e)
    {

SiteMapNodeCollection modifiableCollection = new SiteMapNodeCollection(e.Item.SiteMapNode.RootNode.ChildNodes);
                        modifiableCollection.RemoveAt(2);
    }

现在我的指数超出了范围。必须是非负数且小于集合的大小。\ r \ nParameter name:index

0 个答案:

没有答案