以编程方式将新创建的发布页面移至MOSS 2007的顶部

时间:2014-03-18 13:36:01

标签: c# navigation moss

我现在困住这个问题近一天了: 在应用程序中,我在代码中创建了一个发布页面:

PublishingPage newPage = pages.Add(usableName, layout);
newPage.ListItem["Title"] = promoRecord.PromotionName;
newPage.ListItem["Description"] = string.Empty;
newPage.Update();
newPage.CheckIn("First draft");

到目前为止一切顺利。问题是,我需要新创建的页面出现在导航的顶部。我很天真,想到像这样简单的事情:

SPNavigationNodeCollection navigationNodes = pWeb.CurrentNavigationNodes;
SPNavigationNode newNode = null;

foreach (SPNavigationNode node in navigationNodes)
{
  if (node.Url.Equals(prefix + newPage.Url, StringComparison.OrdinalIgnoreCase))
  {
    newNode = node;
  }
}
newNode.MoveToFirst(navigationNodes);

会奏效。它没有,因为页面根本就不存在(在CurrentNavigationNodes集合中)。 所以我尝试了:

newNode = new SPNavigationNode(promoRecord.PromotionName, prefix + newPage.Url);
navigationNodes.AddAsFirst(newNode);

没有运气 - 这里我有一个例外,说我无法添加页面,因为它处于DRAFT状态。实际上,当我进入前端管理(管理内容和结构/站点管理/导航)时,CurrentNavigation似乎得到了更新 - 页面出现在那里。即使它处于DRAFT模式。

我尝试了许多没有成功的事情......也许你们知道我能尝试什么?

提前多多感谢!

0 个答案:

没有答案