发布页面和内容

发布于 2024-12-05 07:43:20 字数 786 浏览 1 评论 0原文

我创建了一个与带有按钮的代码隐藏内容类型相关联的 PageLayout。单击按钮时,它会签入并发布页面。该功能有效,但问题是内容没有保存在页面上。

但是,当我单击页面顶部的签入按钮(开箱即用)时,它会保存内容。

这是代码:

SPList pagesList = SPContext.Current.Web.Lists["Pages"];
SPFolder folder = pagesList.ParentWeb.GetFolder(SPContext.Current.Web.Url + "/" + pagesList + "/" + "PhlyEventsPages");
SPListItemCollection itemCol = pagesList.Items;
foreach (SPListItem item in itemCol)
{
    if (item["FileLeafRef"].ToString()==getCurrentUrl())
    {
        if (item.File.CheckOutStatus == SPFile.SPCheckOutStatus.LongTerm)
        {                             
            item.File.Update();
            pagesList.Update();
            item.File.CheckIn("Page Created");
            item.File.Publish("Published");
            break;
        }
}

I have created a PageLayout associated a content type with codebehind which has a button.When button is clicked it checks in and publishes the page.The functionality works but the problem the content is not getting saved on the page.

But when I click the check in button (out of the Box) on top of the page it saves the content.

Here is the code:

SPList pagesList = SPContext.Current.Web.Lists["Pages"];
SPFolder folder = pagesList.ParentWeb.GetFolder(SPContext.Current.Web.Url + "/" + pagesList + "/" + "PhlyEventsPages");
SPListItemCollection itemCol = pagesList.Items;
foreach (SPListItem item in itemCol)
{
    if (item["FileLeafRef"].ToString()==getCurrentUrl())
    {
        if (item.File.CheckOutStatus == SPFile.SPCheckOutStatus.LongTerm)
        {                             
            item.File.Update();
            pagesList.Update();
            item.File.CheckIn("Page Created");
            item.File.Publish("Published");
            break;
        }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

歌枕肩 2024-12-12 07:43:20

好吧,您的代码获取了该项目的旧副本。您需要在 SPContext.Current.ListItem 上调用 Update(),这是放置 POST 数据的地方。

Well, your code grabs the OLD copy of the item. You need to call Update() on the SPContext.Current.ListItem, that's where the POST data gets put.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文