将新列添加到现有内容类型

时间:2016-02-19 10:38:54

标签: sharepoint-2013 content-type

我在现有内容类型中添加了一列。内容类型提供列表实例,部署冲突解决方案设置为none。

部署后,添加新项目时未显示该列。但是,该列显示在库设置的内容类型中。

如果我将部署冲突解决方案设置为自动,则会在新项目中添加该列,但我会丢失所有数据。

如何使用新列更新内容类型并将现有数据保留在列表中,我需要做什么?

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: LMS Document (LeaveManagementSystem\LMS Document) (0x010100174F5B4B857F41F5893B76351F3001CA) -->
<ContentType ID="0x010100174F5B4B857F41F5893B76351F3001CA02" Name="LMS Project Document" Group="LMS Content Types" Description="LMS Project Documents Content Type" Inherits="TRUE" Overwrite="TRUE" Version="0">
<FieldRefs>
  <FieldRef ID="{EB703A89-8495-40E8-9F42-180E57EA9F1A}" DisplayName="Name" Required="FALSE" Name="LMS_Name" />
  <FieldRef ID="{0214FB1B-051A-4861-91DA-C94324FDCD6F}" DisplayName="Start Date" Required="FALSE" Name="LMS_StartDate" Format="DateOnly" />
  <FieldRef ID="{26780D0B-4F9A-4BD5-AD56-74D625F14946}" DisplayName="End Date" Required="FALSE" Name="LMS_EndDate" Format="DateOnly" />
  <FieldRef ID="{CDD9F593-7C33-41D6-A16F-1CCD99BA3642}" DisplayName="MM Leave Type" Name="MMLeaveType" />
  <FieldRef ID="{AD3E2F37-FA57-49B1-B5DA-5B9B12F3FAAE}" DisplayName="MM Leave Type_0" Required="FALSE" Hidden="TRUE" Name="MMLeaveTypeTaxHTField0" />
  <FieldRef ID="{f3b0adf9-c1a2-4b02-920d-943fba4b3611}" DisplayName="Taxonomy Catch All Column" Required="FALSE" Hidden="TRUE" Name="TaxCatchAll" Sealed="TRUE" Sortable="FALSE" />
  <FieldRef ID="{8f6b6dd8-9357-4019-8172-966fcd502ed2}" DisplayName="Taxonomy Catch All Column1" Required="FALSE" Hidden="TRUE" Name="TaxCatchAllLabel" ReadOnly="TRUE" Sealed="TRUE" Sortable="FALSE" />
  <FieldRef ID="{8ECEC8EA-560B-40BA-A768-D438AD97DAEF}" DisplayName="Leave Comment" Required="FALSE" Name="LMS_LeaveComment" />
  <FieldRef ID="{CAC62009-5A85-4E12-BF80-661EDB9CEF55}" DisplayName="Balance" Required="FALSE" Name="LMS_Balance" />
</FieldRefs>    
<DocumentTemplate TargetName="/Test_DL/Doc1.docx" />
</ContentType>
</Elements>

1 个答案:

答案 0 :(得分:1)

根据我们的评论,我建议您通过执行PowerShell脚本来推动现有列表的更改。 另一种方法是使用功能的事件接收器。

为了推动变革,你必须:

  • 获取现有列表
  • 实际添加列表中的最新列
  • 更新您的更改

本文将为您提供有关功能事件接收器的更多信息: https://msdn.microsoft.com/en-us/library/ee231604.aspx

本文将为您提供在列表中添加现有字段的代码。 https://social.msdn.microsoft.com/Forums/office/en-US/eb1f0ce2-4015-4c77-8e95-dd3c1398daa7/add-a-column-to-a-list-from-existing-site-columns-programmatically?forum=sharepointdevelopmentlegacy

希望这有帮助