SharePoint安装中的一个用户创建了一些列作为列表列,现在需要在站点级别使用这些列,因此我们必须以某种方式“提升”或“移动”它们。我认为这可能与SourceId属性有关,但不知道其余的。
感谢任何建议,谢谢
答案 0 :(得分:1)
根据我自己对此主题的研究,您似乎应将网站另存为模板,然后将模板导入Visual Studio。
如果网站太大而无法另存为网站模板,请将列表另存为列表模板。对于列表模板,您将获得一个*.stp
文件,该文件只不过是一个Microsoft cabinet文件 - 因此将扩展名更改为*.cab
,您可以从manifest.xml
中提取manifest.xml
文件出租车。在<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>
内,您可以找到列表列的定义。
Import list template STP file to Visual Studio 2010
在manifest.xsf文件中,从* .cab(从* .stp重命名)中提取,你可以找到这样的字段定义:
<?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>
在Visual Studio SharePoint项目中,可以将列表字段定义从其源文件复制并粘贴到SharePoint站点列“elements.xml”文件中。
Field
只需将Visual Studio的Site 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>
元素替换为列表中的字段定义。
{{1}}
一旦您要移动的所有字段都作为单独的站点列在项目中,请编译并部署项目以将站点列放入您的站点。