生活随笔
收集整理的這篇文章主要介紹了
sharepoint2010 创建自定义列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sharepoint2010 創建自定義列表 分類:?sharepoint20102014-04-04 14:06?106人閱讀? 轉:http://boke.25k5.com/kan77298.html
如何創建自定義列表
首先了解創建自定義列表中涉及到的幾個名詞:欄、內容類型 。
①欄: 欄即列、字段(Field),MSDN中給出的解釋為:“字段”一詞在 SharePoint Foundation 開發中有兩個關系非常密切的含義。有時它指的是列表中的列,但如果提到單個列表項,“字段”一詞g 8h"@的意思與“單元格”很接近,這里的單元格是表中某一列和某一行相交的部分。在一定程度上由于這一原因,“列”和“字段”在 SharePoint Foundation 開發中實際上是同義詞。在 SharePoint Foundation? 中,列不僅包含特定數據類型的數據,列本身也是一種類型,因為同一列可用于具有不同數據的多個列表。列可以保存在網站欄庫中。通過編程或用戶界面 (UI) 可將庫中的網站欄添加到網站中的任何列表。通過編程或用戶界面(例如,內容類型設計器)還可以將列添加到內容類型。
②內容類型: MSDN中給出的解釋為:定義 SharePoint Foundation 列表或文檔庫中項目類別的元數據、工作流和行為。我的理解為:將多個欄組合起來描述某一類型的集合。比如我們想新建一個關于產品的內容類型,產品可能包含的屬性:ID、名稱、介紹等信息,那么我們g 8h"@可以將現有的欄庫中得欄(如果沒有需要新建欄)組合到一塊構成一個內容類型。那么這個內容類型就可以用于多個地方,每次創建只需創建此內容類型的列表即可,而不需要創建自定義類型后編輯。
?
下面將介紹通過編程的方式創建自定義列表:
一、新建一個Sharepoint 2010 的空白項目
二、創建內容類型(ContentType):在資源管理器中項目上點擊右鍵—>添加新建項,選擇內容類型,將其命名為Product,點擊添加;會出現一個向導,在向導中選擇項目 ,點擊完成。此時會創建如圖一中標注的內容類型 的新項。
?
圖(一)
打開Product的Elements.xml,<span @font-family:courier="" new;="" 并新建如下代碼:
[html] ?view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>?? <Elements?xmlns="http://schemas.microsoft.com/sharepoint/">?? ??<Field?SourceID="http://schemas.microsoft.com/sharepoint/v3"?? ?????????ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"?? ?????????Name="ProductDescription"?? ?????????DisplayName="Product?Description"?? ?????????Group="My?Custom?Columns"?? ?????????Type="Text"?? ?????????DisplaceOnUpgrade="TRUE"></Field>?? ??<Field?SourceID="http://schemas.microsoft.com/sharepoint/v3"?? ?????????ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"?? ?????????Name="ProductID"?? ?????????DisplayName="Product?ID"?? ?????????Group="My?Custom?Columns"?? ?????????Type="Number"?? ?????????DisplaceOnUpgrade="TRUE"></Field>?? ??<!--?父內容類g?? 8h"@型:?項目?(0x01)?-->?? ??<ContentType?ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"?? ???????????????Name="Product"?? ???????????????Group="自定義內容類型"?? ???????????????Description="我的內容類型"?? ???????????????Inherits="TRUE"?? ???????????????Version="0">?? ????<FieldRefs>?? ??????<FieldRef?ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"?Name="ID"/>?? ??????<FieldRef?ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"?Name="Title"?DisplayName="Product?Name"/>?? ??????<FieldRef?ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"?Name="Description"/>?? ????</FieldRefs>?? ??</ContentType>?? </Elements>?? 代碼中包含的元素如下:
Elements:頂級元素 Field:定義網站欄<g 8h"@="" div=""> ContentType:定義單個內容類型 FieldRefs:表示內容類型中包括的列引用的集合 FieldRef:指定要在此內容類型中引用的列? 下面主要介紹上述元素中(Field、ContentType、FieldRef)主要屬性,其他屬性請參見MSDN中介紹。
<Field SourceID="http://schemas.microsoft.com/sharepoint/v3" ???????? ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" ???????? Name="ProductID" ???????? DisplayName="Product ID" ???????? Group="My Custom Columns" ???????? Type=g 8h"@"Number" ???????? DisplaceOnUpgrade="TRUE"></Field>屬性 說明 SourceID 可選屬性,類型為 Text。包含定義字段的命名空間(如 http://schemas.microsoft.com/sharepoint/v3),或者在其中創建自定義字段的列表的 GUID。 ID 必需屬性,類型為?Text。唯一標識字段。該值應是包含在括號 ({}) 內的 GUID 的字符串表示形式。 Name 必需屬性,類型為?Text。字段的內部名稱。該名稱在列表或網站的字段集中必須為唯一。如有必要,SharePoint Foundation 會修改該值以保證其唯一性;否則,在字段g 8h"@定義的生命周期內,其不會更改。 DisplayName 可選屬性,類型為?Text。字段的顯示名稱。沒有空格使用限制。最大長度為 255 個字符。該值可以是格式為$Resources:String?的資源引用。該顯示名稱可由用戶編輯并且可在初始字段創建后更改。該名稱在字段顯示在表視圖中時用作欄標題,在字段顯示在表單中時用作表單標簽。 Group 可選屬性,類型為?Text。指定字段所屬的欄組。 Type 必需屬性,類型為?Text。字段的數據類型 DisplaceOnUpgrade 可選屬性,類型為?Boolean。如果字段已存在字段定義,則選擇?TRUE?可強制使用該字段定義中指定的值更新字段屬性。
<ContentType ID="0x01001bc8deb250c04fa0bd7d541e4757c82a" ?????????????? Name="Product" ?????????????? Group="自定義內容類型" ?????????????? Description="我的內容類型" ?????????????? Inherits="TRUE" ?????????????? Version="0"></ContentType>屬性 說明 ID 必需屬性,類型為g 8h"@?Text。指定內容類型的內容類型 ID。內容類型 ID 具有特定的格式。如果為ID?屬性分配的值格式不正確,激活功能時將遇到錯誤。 Name 必需屬性,類型為?Text。指定內容類型名稱。該值可以為對$Resources:String?格式的資源的引用。名稱本身的長度不能超過 128 個字符,并且不能包含?? / : * ? " # % < > { } | ~ &?字符、兩個連續的句點 (..) 或制表符等特殊字符。 如果添加內容類型的集合中存在另一個同名內容類型,則會出現錯誤。 Group 可選屬性,類型為?Text。指定內容類型分配到的內容類型組。內容類型組是用戶定g 8h"@的組,可幫助您將內容類型分組到邏輯類別中。該值可以為對$Resources:String?格式的資源的引用。 Description 可選屬性,類型為?Text。提供要在 SharePoint Foundation 用戶界面中顯示的內容類型的說明。該值可以為對$Resources:String?格式的資源的引用。 Inherits 可選屬性,類型為?Boolean。此屬性的值確定創建時內容類型是否從其父內容類型繼承字段。 Version 保留以供將來使用。
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name"/> g 8h"@ 屬性 說明 ID 必需屬性,類型為 Text。指定此 FieldRef 元素引用的列的字段 ID。字段 ID 是 GUID 的字符串表示形式,包括大括號。值區分大小寫。可以在位于以下路徑的 fieldswss.xml 文件中查找內置字段的 ID:%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14TEMPLATEFEATURESfields。 Name 必需屬性,類型為?Text。列的名稱。這是列的內部名稱,并且保證在字段定義的生存期內絕不會更改此名稱。它相對于列表中的字段集必須是唯一的。 DisplayName 必需屬性,類型為?Text。列的顯示名稱。最大長度為 255 個字符。
當字段在表視圖中顯示時,此屬性的值將用作列標題;當字段在表單中顯示時,此屬性的值將用作表單g 8h"@標簽。可以使用DisplayName?屬性將顯示名稱更改為不同于在字段本身上定義的名稱的值。
?
三、編寫完內容類型后,創建列表定義。在資源管理器中右鍵項目—>添加新建項—>列表定義(ListDefinition),點擊添加;此時會出現向導,將顯示名稱修改為ProductList,列表定義類型修改為自定義列表,保持為此列表定義添加列表實例的勾選狀態,點擊完成。會生成如圖一中自定義列表中顯示的結構。
在此結構中主要是對Schema.xml文件的編寫,下面為此XML的編寫后的完整代碼:
[html] ?view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>?? <List?xmlns:ows="Microsoft?SharePoint"?Title="ProductList"?FolderCreation="FALSE"?EnableContentTypes="TRUE"?? ??????Direction="$Rg?? 8h"@esources:Direction;"?Url="Lists/ListsAndSchemas-ProductList"?BaseType="0"?? ??????xmlns="http://schemas.microsoft.com/sharepoint/">?? ??<MetaData>?? ????<ContentTypes>?? ??????<ContentTypeRef?ID="0x01">?? ????????<Folder?TargetName="Item"?/>?? ??????</ContentTypeRef>?? ??????<ContentTypeRef?ID="0x0120"?/>?? ??????<ContentTypeRef?ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>?? ????</ContentTypes>?? ????<Fields>?? ??????<Field?ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"?Name="ID"?DisplayName="Product?ID"?Type="Number"></Field>?? ??????<Field?ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"?Name="Title"?DisplayName="Product?Name"?Type="Text"></Field>?? ??????<Field?ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"?Name="Description"?DisplayName="Product?Descritpion&qug?? 8h"@ot;?Type="Text"></Field>?? ????</Fields>?? ????<Views>?? ??????<View?BaseViewID="0"?Type="HTML"?MobileView="TRUE"?TabularView="FALSE">?? ????????<Toolbar?Type="Standard"?/>?? ????????<XslLink?Default="TRUE">main.xsl</XslLink>?? ????????<RowLimit?Paged="TRUE">30</RowLimit>?? ????????<ViewFields>?? ??????????<FieldRef?Name="LinkTitleNoMenu"></FieldRef>?? ??????????<FieldRef?ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"?Name="Descritpion"?DisplayName="Product?Description"></FieldRef>?? ??????????<FieldRef?ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"?Name="ID"?DisplayName="Product?ID"></FieldRef>?? ????????</ViewFields>?? ????????<Query>?? ??????????<OrderBy>?? ????????????<FieldRef?Name="Modified"?Ascending="FALSE"></FieldRef>?? ??????????</OrderByg?? 8h"@>?? ????????</Query>?? ????????<ParameterBindings>?? ??????????<ParameterBinding?Name="AddNewAnnouncement"?Location="Resource(wss,addnewitem)"?/>?? ??????????<ParameterBinding?Name="NoAnnouncements"?Location="Resource(wss,noXinviewofY_LIST)"?/>?? ??????????<ParameterBinding?Name="NoAnnouncementsHowTo"?Location="Resource(wss,noXinviewofY_ONET_HOME)"?/>?? ????????</ParameterBindings>?? ??????</View>?? ??????<View?BaseViewID="1"?Type="HTML"?WebPartZoneID="Main"?DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;"?DefaultView="TRUE"?MobileView="TRUE"?MobileDefaultView="TRUE"?SetupPath="pagesviewpage.aspx"?ImageUrl="/_layouts/images/generic.png"?Url="AllItems.aspx">?? ????????<Toolbar?Type="Standard"?/>?? ????????<XslLink?Default="TRUE">main.xsl</XslLink>?? ????????<RowLimit?Pagg?? 8h"@ed="TRUE">30</RowLimit>?? ????????<ViewFields>?? ??????????<FieldRef?Name="Attachments"></FieldRef>?? ??????????<FieldRef?Name="LinkTitle"></FieldRef>?? ??????????<FieldRef?ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"?Name="ID"?DisplayName="Product?ID"></FieldRef>?? ??????????<FieldRef?ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"?Name="Descritpion"?DisplayName="Product?Description"></FieldRef>?? ????????</ViewFields>?? ????????<Query>?? ??????????<OrderBy>?? ????????????<FieldRef?Name="ID"></FieldRef>?? ??????????</OrderBy>?? ????????</Query>?? ????????<ParameterBindings>?? ??????????<ParameterBinding?Name="NoAnnouncements"?Location="Resource(wss,noXinviewofY_LIST)"?/>?? ??????????<ParameterBinding?Name="NoAnnouncementsHowTo"?Location="Resource(wss,noXinviewofY_DEFAULT)"?/>?? ??????g?? 8h"@??</ParameterBindings>?? ??????</View>?? ????</Views>?? ????<Forms>?? ??????<Form?Type="DisplayForm"?Url="DispForm.aspx"?SetupPath="pagesform.aspx"?WebPartZoneID="Main"?/>?? ??????<Form?Type="EditForm"?Url="EditForm.aspx"?SetupPath="pagesform.aspx"?WebPartZoneID="Main"?/>?? ??????<Form?Type="NewForm"?Url="NewForm.aspx"?SetupPath="pagesform.aspx"?WebPartZoneID="Main"?/>?? ????</Forms>?? ??</MetaData>?? </List>?? 我們在此文檔中添加的內容為:
在ContentTypes元素中添加<ContentTypeRef ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>,此處的ID必須與第二部中創建的內容模板中得ContentType的ID相同。 添加Fields集合元素 <Fields> ????? <Field ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name=&qug 8h"@ot;ID" DisplayName="Product ID" Type="Number"></Field> ????? <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name" Type="Text"></Field> ????? <Field ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Description" DisplayName="Product Descritpion" Type="Text"></Field> < /Fields> 此元素中得ID也必須與第二步中創建的ID相同。此處定義的為此列表中包含的列。 在兩個Views元素中得ViewFields元素中添加 <FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID"></FieldRef> < FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Descritpion" DisplayName="Product Description"></FieldRef> g 8h"@
四、部署此項目,刷新網站即可看到我們自定義的列表;在網站設置中得,網站欄、網站內容類型也可以看到我們新建的欄和內容類型。
?
轉載于:https://www.cnblogs.com/ningang/p/4302101.html
總結
以上是生活随笔 為你收集整理的sharepoint2010 创建自定义列表 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。