gpt4 book ai didi

c# - 如何以编程方式在企业 Wiki 站点的页面库中创建可编辑的 Wiki 页面

转载 作者:行者123 更新时间:2023-11-30 14:34:55 24 4
gpt4 key购买 nike

我是 SharePoint 新手。我正在尝试以编程方式在 SharePoint 2010 中企业 Wiki 站点的页面库中创建一个 Wiki 页面。这是我的代码:

using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
SPWeb rootWeb = site.RootWeb;
rootWeb.AllowUnsafeUpdates = true;
SPList wiki = rootWeb.Lists["Pages"];
SPFolder rootFolder = wiki.RootFolder;
SPFile wikiPage = rootFolder.Files.Add(String.Format("{0}/{1}", rootFolder.ServerRelativeUrl, "MyWikiPage.aspx"), SPTemplateFileType.WikiPage);
SPListItem wikiItem = wikiPage.Item;
wikiItem["PublishingPageContent"] = "my demo content";
wikiItem.UpdateOverwriteVersion();
rootWeb.AllowUnsafeUpdates = false;
}

页面已创建,但问题是创建的页面不可编辑且未插入演示内容。在编辑模式下打开时,没有可用的内容空间并且编辑选项显示为灰色。

我也试过像这样设置默认内容:

    wikiItem[SPBuiltInFieldId.WikiField] = "my demo content";

但这会给出无效字段错误。

我也试过用这行代码创建页面:

    SPFile wikiPage = SPUtility.CreateNewWikiPage(wiki, String.Format("{0}/{1}", rootFolder.ServerRelativeUrl, "MyWikiPage.aspx"));

但结果完全一样。

我已确认已为网站启用“SharePoint Server 发布”功能,并且已为网站集启用“SharePoint Server 发布基础结构”功能。

请帮忙。

最佳答案

在我在 sharepoint.stackexchange.com 上的其他帖子的帮助下,我想出了这个解决方案:

我们需要创建一个新的发布页面并相应地更新内容类型属性,而不是使用常规的 wiki 操作例程来定位页面库。

为了其他人的利益,这里是对我有用的代码:

using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
SPWeb rootWeb = site.RootWeb;
rootWeb.AllowUnsafeUpdates = true;
SPList wiki = rootWeb.Lists["Pages"];
String url = wiki.RootFolder.ServerRelativeUrl.ToString();
PublishingSite pubSite = new PublishingSite(rootWeb.Site);
string pageLayoutName = "EnterpriseWiki.aspx"; //Page Layout Name
string layoutURL = rootWeb.Url + "/_catalogs/masterpage/" + pageLayoutName;
PageLayout layout = pubSite.PageLayouts[layoutURL];
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(rootWeb);
PublishingPage newWikiPage;
string myWikiPage = "MyWikiPage.aspx"; //Page name
newWikiPage = publishingWeb.GetPublishingPages().Add(myWikiPage, layout);
newWikiPage.Title = "My Wiki Page";
newWikiPage.Update();
rootWeb.AllowUnsafeUpdates = false;
}

关于c# - 如何以编程方式在企业 Wiki 站点的页面库中创建可编辑的 Wiki 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com