上次修改时间: 2015年3月9日
适用范围: SharePoint Foundation 2010
Windows SharePoint Services 3.0 中的列表定义已变为"功能",从而使其更容易从网站定义进行访问。因此,您无需在网站定义中重新定义您不想自定义的列表。
备注
在 Microsoft SharePoint Foundation 2010 中,您应该不需要修改已经是功能的自定义列表定义,功能是可以升级的最安全的自定义项之一。但是,如果列表定义涉及到自定义用户界面 (UI)、自定义视图或者对非自定义文件的引用,那么在升级后,您应该在以前版本的 UI 模式和当前版本的 UI 模式中分别验证页面呈现。每次将页面或网站定义恢复为其原始未自定义状态时,都应该验证页面。
如果您未自定义以前版本的任何标准列表定义,则只需要从网站定义中移除标准列表定义,并将其替换为对标准 SharePoint Foundation 团队协作功能的引用。
从网站定义中移除标准列表定义
如果标准列表定义存在于以前版本的 Onet.xml 中,则移除以下列表类型的 <ListTemplate> 标记:
custlist
gridlist
doclib
imglib
voting
discuss
favorite
announce
contacts
events
tasks
xmlform
issue
此外,根据以前版本的不同,您可能需要移除这些旧列表定义的支持列表目录。也就是说,对于您的当前 网站定义,您可以从 \LISTS 中移除 ANNOUNCE、CONTACTS、CUSTLIST、DISCUSS、DOCLIB、EVENTS、FAVORITE、GRIDLIST、IMGLIB、ISSUE、TASKS、VOTING 和 XMLFORM 文件夹。
在 Onet.xml 文件的每个 <Configuration> 标记中,添加对团队协作功能的引用,如下所示。
<Configuration ...> <WebFeatures> <!-- TeamCollab Feature --> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> </WebFeatures> </Configuration>
如果您已经自定义了特定列表定义(例如,文档库定义 [DOCLIB]),则必须使用一种更详细的方法。按上述方法替换所有未自定义的列表(在本例中为除 DOCLIB 外的所有列表)。添加对包含未自定义列表定义的功能的特定引用,而不要在 <Configuration> 标记中添加对团队协作功能的引用。表 1 显示了列表定义的功能文件夹名称和功能 ID。
表 1. 列表定义的功能文件夹名称和功能 ID
文件夹 |
ID |
|---|---|
AnnouncementsList |
00BFEA71-D1CE-42de-9C63-A44004CE0104 |
ContactsList |
00BFEA71-7E6D-4186-9BA8-C047AC750105 |
CustomList |
00BFEA71-DE22-43B2-A848-C05709900100 |
DataSourceLibrary |
00BFEA71-F381-423D-B9D1-DA7A54C50110 |
DiscussionsList |
00BFEA71-6A49-43FA-B535-D15C05500108 |
DocumentLibrary |
00BFEA71-E717-4E80-AA17-D0C71B360101 |
EventsList |
00BFEA71-EC85-4903-972D-EBE475780106 |
GanttTasksList |
00BFEA71-513D-4CA0-96C2-6A47775C0119 |
GridList |
00BFEA71-3A1D-41D3-A0EE-651D11570120 |
IssuesList |
00BFEA71-5932-4F9C-AD71-1557E5751100 |
LinksList |
00BFEA71-2062-426C-90BF-714C59600103 |
NoCodeWorkflowLibrary |
00BFEA71-F600-43F6-A895-40C0DE7B0117 |
PictureLibrary |
00BFEA71-52D4-45B3-B544-B1C71B620109 |
SurveysList |
00BFEA71-EB8A-40B1-80C7-506BE7590102 |
TasksList |
00BFEA71-A83E-497E-9BA0-7A5C597D0107 |
WebPageLibrary |
00BFEA71-C796-4402-9F2F-0EB9A6E71B18 |
WorkflowProcessLibrary |
00BFEA71-2D77-4A75-9FCA-76516689E21A |
WorkflowHistoryList |
00BFEA71-4EA5-48D4-A4AD-305CF7030140 |
XmlFormLibrary |
00BFEA71-1E1D-4562-B56A-F05371BB0115 |
如果您仅在旧网站定义中自定义了文档库 (DOCLIB) 列表定义,请不要在 Onet.xml 文件的 <Configuration> 标记中包含此列表定义的引用。对于除文档库列表定义之外的每个功能,添加的功能引用应限定在网站集或网站级别范围内,以便此列表定义能够保留您的自定义设置。
添加新的表单、内容类型和共享字段
可考虑对以前版本的每个自定义列表定义进行更多更改,使其能够用于 SharePoint Foundation 的当前版本。
所有 SharePoint 表单和列表视图页现在都使用标准化的 ASPX 页。默认情况下,这些页现在共享一个标准 ASPX 文件,而不是每一页都有其各自的 AllItems.aspx、EditForm.aspx、DisplayForm.aspx 或 NewForm.aspx 文件。若要使用这些标准化表单页,请在 Windows SharePoint Services 2.0 列表定义的所有 <Form> 标记中指定 SetupPath="pages\form.aspx",并在包含页面的视图中指定 SetupPath="pages\viewpage.aspx"。当然,如果已为特定列表自定义了页面,则可以继续使用它们,但必须遵守前面提供的有关升级 .ASPX 页以在 SharePoint Foundation 中使用的指导。
列表表单现在使用基于 Microsoft ASP.NET 用户控件的模板,而不是协作应用程序标记语言 (CAML)。不再需要 CAML 表单定义,因此可将其移除。如果您希望对您的列表定义使用自定义模板,请在 Schema.xml 文件的 <Form> 标记中指定 Template="TEMPLATENAME"。有关自定义表单模板的详细信息,请参阅创建自定义表单模板。
可考虑调整自定义列表定义以使用内容类型和共享的字段定义。为此,请在单独的网站集范围内的功能中定义新的内容类型和共享字段。若要升级您的列表定义,请使用 <ContentTypes> 标记,以声明要在通过定义创建的列表中实现的内容类型,并通过指定标识它们必须使用的共享字段的 GUID 来注释 <Field> 标记。但请注意,即使使用内容类型,您的列表定义仍需要声明列表功能的 Schema.xml 文件中包含的所有字段。