发布页面和内容
我创建了一个与带有按钮的代码隐藏内容类型相关联的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,您的代码获取了该项目的旧副本。您需要在 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.