Site Columns是Sharepoint網站的一個重要底層結構,它是一類可重用的列定義或模板,可以將其分配給一個或多個 SharePoint 網站的一個或多個列表。
一個Site Column是由幾個屬性定義的,包括名稱及其字段類型。例如 Title這個Column,其名稱就是Title,字段類型就是Text。
在Sharepoint中我們可以通過管理界面查看到系統的Site Columns,我們可以通過相應Site Collection的Site Setting進入管理界面,在Galleries中可以通過SiteColumns進入對應管理界面。
當我們把Site Columns添加到列表或Content Type中的時候,可以設定其功能定義,比如是不是必填項,是否只讀或是是否隱藏。
使用Site Column的好處是減少重復工作以及保持元數據(metadata)在整個Site Collection上的一致性。
我們既可以在Sharepoin網站界面上面進行傻瓜式操作,通過Site Actions > Site Settings > Modify All Site Settings. 然后在Galleries > Site Columns, 最后點Create按扭。但是這種方法不夠專業,假設如果要從開發機器部署到服務器,那么這個步驟需要在服務器上再操作一遍。所以通過VS2010開發Feature來進行Site Column的創建是一種聰明的作法。
這里我們使用VS2010來創建一個簡單的Site Column: Cameral Used,這個Site Column將會應用到我們后面的Content Type的創建中。
首先打開VS2010,創建一個新的Sharepoint Project,命名為MySiteColumProject.如下圖

在接下來的提示框中選擇此Solution為Farm模式
新建立的空項目如下
在此空項目中添加一個新的Empty Element,命名為SiteColumns
在SiteColumns的Elements.xml中有一個Elements元素,在此元素下我們可以加入許多個Element,這里的Element就是我們所指的Site Column。在本例中我們加入如下代碼:
上面的代碼中:
ID需要我們指定,我們可以使用GUID工具來獲取:
這里需要提示的是Field的Guid上不能忽略大括號,否則將導致部署失敗。
Name就是我們給這個Site Column所指定的名字
Type 是這個Site Column所使用的字段類型,我們這里指定為Text,它還可以是如下類型:
• Multiple lines of text
• Choice (menu to choose from)
• Number (1, 1.0, 100)
• Currency ($, ¥, )
• Date and Time
• Lookup (looks up values from a list already on the site)
• Yes/No (check box)
• Person or Group
• Hyperlink or Picture
• Calculated (calculation based on other columns)
Group屬性是指我們把這個用戶新增的Site Column放入到哪一個Site Column Group中,本例我們設置為:Extended Column
DisplayName則是我們在Sharepoint UI上可以看到到此Site Column顯示出來的名字。
接下來我們Build並部署此Solution,然后到Sharepoint網站上去查看,可以看到此Site Column已經出現在預期的位置