首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否删除quicklaunch中的所有链接?

是否删除quicklaunch中的所有链接?
EN

Stack Overflow用户
提问于 2012-04-11 17:26:19
回答 4查看 5K关注 0票数 4

我想删除所有的链接在一个快速启动在SP2010与C#。我认为这可以做到这一点,但不知何故,他们不会删除:

代码语言:javascript
复制
        SPNavigationNodeCollection n = subSite.Navigation.QuickLaunch;

        foreach (SPNavigationNode node in n)
        {
            node.Delete();
        }

我可以添加链接,但不能删除它们:/有什么想法吗?Thx

编辑: Ah得到了修复:)

我不能只写node.Delete(),我需要写n.Delete(node)

Edit2:嗯,不知何故,我不会删除所有的链接。如果我运行代码2-3次,那么它们都被删除了,很奇怪

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-11 21:39:26

尝试以下代码:

代码语言:javascript
复制
 SPNavigationNodeCollection nodes = web.Navigation.QuickLaunch;
 for(int i = nodes.Count - 1; i >= 0; i--)
            {
                nodes[i].Delete();
            }

另请参阅此链接:http://www.mtelligent.com/journal/2007/10/7/customizing-the-quick-launch-menu-with-spnavigationnode-spna.html

票数 12
EN

Stack Overflow用户

发布于 2012-10-23 22:00:11

我自己也经历过同样的问题。

我能够通过自下而上删除快速启动上的链接。我的理论是,在快速启动时删除链接后,集合会上移,所以当链接被删除时,link1变成了链接。然后,当尝试删除link1时,link2实际上被删除了。

你的问题是,在某些时候linki不存在,并抛出错误“无法完成此操作”,但您尚未删除所有链接。

代码语言:javascript
复制
//Iterate from the bottom of the links to the top

for (i = numLinks-1; i >=0 ; i--)
{
    links[i].Delete();
}
票数 5
EN

Stack Overflow用户

发布于 2012-04-18 02:23:39

您必须从最后到第一个处理集合,因为如果像foreach一样从头到尾处理,则在删除集合中的项时会更改集合,从而使迭代变得混乱

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10103225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档