2

SharePoint 安装中的一位用户创建了一些列作为列表列,现在站点级别需要这些列,因此我们必须以某种方式“提升”或“移动”它们。我认为这可能与 SourceId 属性有关,但不知道其余部分。

任何建议表示赞赏,谢谢

4

1 回答 1

1

根据我自己对该主题的研究,您应该将站点保存为模板,然后将模板导入 Visual Studio。

https://sharepoint.stackexchange.com/questions/30045/importing-custom-list-to-visual-studio-from-sharepoint

https://sharepoint.stackexchange.com/questions/14805/export-a-list-from-sharepoint-2010-into-visual-studio-2010

如果站点太大而无法保存为站点模板,则将列表另存为列表模板。对于列表模板,您将获得一个*.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>

一旦您想要移动的所有字段作为单独的站点列在您的项目中,编译和部署项目以将站点列放置到您的站点中。

于 2013-06-20T13:12:06.927 回答