【问题标题】:Is there a way to detect the page layout in an ItemAdded event?有没有办法在 ItemAdded 事件中检测页面布局?
【发布时间】:2012-11-08 07:44:53
【问题描述】:

在我们的 SharePoint 项目中,我们有一个页面布局,用户可以在其中在编辑模式下设置自定义复选框(“显示为新闻”)。现在我们的客户询问我们是否可以将此复选框设置为默认选中。

复选框在布局页面中实现为<SharePointWebControls:BooleanField>,在站点列定义中具有对应的<Field Type="Boolean">

我尝试将<Default>1</Default> 添加到站点列定义中,并通过 SiteSettings 更改站点列的默认值,这很有效,并且该复选框默认显示为选中新页面。但是,我们还有其他布局也使用该字段(相同的内容类型),并且我们不希望默认检查其值。

所以,我的想法是在创建页面时在事件接收器中设置字段值。接收器被正确调用并且该项目可用,但是我似乎无法找到一种方法来从通过事件属性获得的项目确定页面布局。我尝试通过字段item["PublishingPageLayout"] 直接访问布局,也尝试将页面获取为PublishingPage,然后调用publishingPage.Layout.Name,但在这两种情况下,布局都没有可用值(null)。

如果有人能提出另一种方法来找出布局,我会很高兴。或者也许完全是其他方式来实现我想要的。

【问题讨论】:

    标签: c# sharepoint


    【解决方案1】:

    实现你想要的其他方式:

    基于此创建一个新的内容类型。新内容类型将默认选中复选框,并且仅用于此列表。这样其他布局不会受到影响,可以独立工作。

    希望这有帮助吗?

    【讨论】:

    • 这是一种可能性,我认为它也可能是唯一的“干净”解决方案。我对这个问题进行了更多思考,但除了创建新的内容类型之外,看不到任何真正的“好”方法来实现这一目标。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多