SharePoint 安装中的一位用户创建了一些列作为列表列,现在站点级别需要这些列,因此我们必须以某种方式“提升”或“移动”它们。我认为这可能与 SourceId 属性有关,但不知道其余部分。
任何建议表示赞赏,谢谢
SharePoint 安装中的一位用户创建了一些列作为列表列,现在站点级别需要这些列,因此我们必须以某种方式“提升”或“移动”它们。我认为这可能与 SourceId 属性有关,但不知道其余部分。
任何建议表示赞赏,谢谢
根据我自己对该主题的研究,您应该将站点保存为模板,然后将模板导入 Visual Studio。
如果站点太大而无法保存为站点模板,则将列表另存为列表模板。对于列表模板,您将获得一个*.stp
文件,它只不过是一个 Microsoft 文件柜文件 - 因此将扩展名更改为,您可以从 cab*.cab
中提取文件。manifest.xml
在里面manifest.xml
你会找到列表列的定义。
将列表模板 STP 文件导入 Visual Studio 2010
在 manifest.xsf 文件中,从 *.cab(从 *.stp 重命名)中提取,您可以找到如下字段定义:
<ListTemplate WebUrl="http://host/sites/site">
<Details> ... </Details>
<Files> ... </Files>
<UserLists>
<List Name="{guid}" ...>
<MetaData>
<Views> ... </Views>
<Fields>
<Field Type="Text" Name="MyField1" DisplayName="My Field 1" ID="{guid-1}" ... > ... </Field>
<Field Type="Note" Name="MyField2" DisplayName="My Field 2" ID="{guid-2" ... > ... </Field>
<Field Type="Status" Name="MyField3" DisplayName="My Field 3" ID="{guid-3}" ... > ... </Field>
<Field Type="URL" Name="MyField4" DisplayName="My Field 4" ID="{guid-4}" ... > ... </Field>
</Fields>
<ContentTypes> ... </ContentTypes>
<Forms> ... </Forms>
...
</MetaData>
</List>
</UserLists>
</ListTemplate>
在 Visual Studio SharePoint 项目中,可以将列表字段定义从其源文件复制并粘贴到 SharePoint 网站栏“elements.xml”文件中。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field
ID="{abd3b925-1e2c-4423-8e9b-7a861be38917}"
Name="SiteColumn1"
DisplayName="Site Column 1"
Type="Text"
Required="FALSE"
Group="Custom Site Columns">
</Field>
</Elements>
Field
只需将Visual StudioSite Column
模板中的默认元素替换为列表中的字段定义即可。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field Type="Text" Name="MyField1" DisplayName="My Field 1" ID="{guid-1}" ... > ... </Field>
</Elements>
一旦您想要移动的所有字段作为单独的站点列在您的项目中,编译和部署项目以将站点列放置到您的站点中。