前面我們建立List Instance與List Template時,它們都在一個Soltuion中,如果我們開發小組的其它成員已經開發並部署了某些List Template,而現在我們需要在我們新的Solution中使用那些已經開發好的List Template來建立我們的List Instance,那麼該如何操作呢?這裡就以我們前面建立的那個自訂List Defintion中的List Template為例來新建立一個List Instance。
首先使用VS2010建立一個空的Sharepoin Project(Farm模式)
在新項目中添加一個空的Element
建立項目如:
在Elements.xml中輸入代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListInstance Title="MyPicListFromTemplate"
FeatureId="f4ea6583-56a3-4328-90b2-c3b4a62afad4"
TemplateType="10006"
Id="MyPicCustomList"
Description="The List Instance From List Template."
Url="Lists/MyPicCustomList"
OnQuickLaunch="true"
RootWebOnly="false" />
</Elements>
這個ListIntance就是我們基於已經存在的List Template來建立的,在它的定義中,關鍵的有兩個屬性。
FeatureId:這個屬性有人會搞混,認為它就是我們前面所部署的List Definition所在的那個Feature的ID,其實並不是。這個FeatureID是我們部署後,系統給我們的那個自訂的List Template的ID.
Templatetype:這個屬性要與我們自訂Content Type的Type值一致。這個屬性值我們在前面的文章中已經描述過。
那麼你可能就要問了,我如何知道FeatureID值與Templatetype值呢,方法就是使用我們的ServerExplorer,在VS2010中開啟ServerExplorer,找到我們需要使用的List Template,查看它的屬性,在屬性描述裡我們就可以找到我們需要使用的屬性值了。
項目操作示意如:
Build並部署後,就可以看到我們建立的這個List的執行個體了。
當然,除了使用使用者自訂的List Template,我們還可以使用系統建立好的List Template來建立我們的List Instance。
下面這張表就是系統中有效List Template以及它們的TemplateId和 FeatureId
Type of list |
TemplateId |
FeatureId |
| Generic List |
100 |
00BFEA71-DE22-43B2-A848-C05709900100 |
| Document Library |
101 |
00BFEA71-E717-4E80-AA17-D0C71B360101 |
| Survey |
102 |
00BFEA71-EB8A-40B1-80C7-506BE7590102 |
| Links List |
103 |
00BFEA71-2062-426C-90BF-714C59600103 |
| Announcements List |
104 |
00BFEA71-D1CE-42de-9C63-A44004CE0104 |
| Contacts List |
105 |
00BFEA71-7E6D-4186-9BA8-C047AC750105 |
| Events List |
106 |
00BFEA71-EC85-4903-972D-EBE475780106 |
| Tasks List |
107 |
00BFEA71-A83E-497E-9BA0-7A5C597D0107 |
| Discussion List |
108 |
00BFEA71-6A49-43FA-B535-D15C05500108 |
| Picture Library |
109 |
00BFEA71-52D4-45B3-B544-B1C71B620109 |
| Data Sources |
110 |
00BFEA71-F381-423D-B9D1-DA7A54C50110 |
| Site template gallery |
111 |
|
| User Information List |
112 |
|
| Web Part gallery |
113 |
|
| List Template gallery |
114 |
|
| XML Form Library |
115 |
00BFEA71-1E1D-4562-B56A-F05371BB0115 |
| Master Pages gallery |
116 |
|
| No-Code Workflows |
117 |
00BFEA71-F600-43F6-A895-40C0DE7B0117 |
| Custom Workflow Process |
118 |
00BFEA71-2D77-4A75-9FCA-76516689E21A |
| Wiki Page Library |
119 |
00BFEA71-C796-4402-9F2F-0EB9A6E71B18 |
| Grid List |
120 |
00BFEA71-3A1D-41D3-A0EE-651D11570120 |
| Data Connection Library |
130 |
00BFEA71-DBD7-4F72-B8CB-DA7AC0440130 |
| Workflow History |
140 |
00BFEA71-4EA5-48D4-A4AD-305CF7030140 |
| Gantt Task List |
150 |
00BFEA71-513D-4CA0-96C2-6A47775C0119 |
| Meeting Series List |
200 |
|
| Meeting Agenda List |
201 |
|
| Meeting Attendees List |
202 |
|
| Meeting Decision List |
204 |
|
| Meeting Objectives List |
207 |
|
| Meeting Things to Bring List |
211 |
|
| Meeting Workspace Pages List |
212 |
|
| Blog Posts List |
301 |
|
| Blog Comments List |
302 |
|
| Blog Categories List |
303 |
|
| Status Indicator (KPI) List |
432 |
7ED6CD55-B479-4EB7-A529-E99A24C10BD3 |
| Report Library |
433 |
6E53DD27-98F2-4AE5-85A0-E9A8EF4AA6DF |
| Publishing Pages Library |
850 |
|
| Issue Tracking List |
1100 |
00BFEA71-5932-4F9C-AD71-1557E5751100 |
| Administrator Tasks List |
1200 |
|
| Translation Management Library |
1300 |
29D85C25-170C-4df9-A641-12DB0B9D4130 |
| Translation List |
1301 |
29D85C25-170C-4df9-A641-12DB0B9D4130 |
| Slide Library |
2100 |
0BE49FE9-9BC9-409d-ABF9-702753BD878D |
以Generic List Template 為例來建立 List Instance,只需要在上面項目中的Elements.xml中加入下面的定義即可:
<ListInstance Title="MyGenericListFromTemplate"
FeatureId="00BFEA71-DE22-43B2-A848-C05709900100"
TemplateType="100"
Id="MyGenericCustomList"
Description="The List Instance From Generic List Template."
Url="Lists/MyGenericCustomList"
OnQuickLaunch="true"
RootWebOnly="false" />