
- SharePoint 教程
- SharePoint - 首頁
- SharePoint - 概述
- SharePoint - 型別
- SharePoint - 功能
- SharePoint - 設定環境
- SharePoint - 建立網站集
- SharePoint - API
- SharePoint - 中心管理
- SharePoint - 應用模型
- SharePoint - 整合選項
- SharePoint - 開發工具
- SharePoint - 列表功能
- 更多列表功能
- SharePoint - 自定義列表
- SharePoint - 庫
- SharePoint - Web部件
- 網站列與內容型別
- SharePoint - 資料
- SharePoint - 伺服器物件模型
- SharePoint - 客戶端物件模型
- SharePoint - REST API
- SharePoint - 功能與元素
- SharePoint - 功能/事件接收器
- SharePoint - Azure 平臺
- SharePoint - 打包與部署
- SharePoint - 沙盒解決方案
- SharePoint - 應用
- SharePoint 有用資源
- SharePoint - 快速指南
- SharePoint - 資源
- SharePoint - 討論
SharePoint - 功能與元素
本章我們將探討SharePoint的功能和元素。功能在某種程度上是SharePoint中的元件模型。它們允許您定義功能的邏輯單元。
例如,您可能希望在網站內具有以下功能:
建立一個具有特定模式的列表;
顯示該列表資料的頁面;以及
網站內某個位置的連結或選單選項,用於導航到該頁面。
您可以建立一個功能,該功能定義該功能的邏輯分組。各個功能部件由元素定義。
因此,將會有一個元素:
建立列表並設定模式;
將頁面置備到您的SharePoint網站;以及
建立選單選項或連結。
功能定義單元,然後元素定義該單元內的各個功能部件。我們討論了三種類型的元素:
列表例項,用於建立列表;
模組,用於置備頁面;
自定義操作,用於建立選單選項或連結。
但是,可以在SharePoint中建立許多其他型別的元素。關於功能,另一個需要理解的重要概念是啟用和停用。
例如,如果終端使用者希望將上述功能新增到其網站,他將啟用相應的建立列表、新增選單選項或連結以及將其頁面置備到其網站的功能。稍後,他可以停用該功能以刪除該功能。
需要注意的是,停用功能後,某些元素會自動刪除。例如,SharePoint會自動刪除由自定義操作定義的選單選項或連結。
其他元素不會自動刪除。因此,在我們的例子中,列表例項和頁面不會自動刪除。
因此,作為開發人員,您需要了解哪些元素會自動刪除,哪些元素不會自動刪除。如果要刪除不會自動刪除的元素,可以在功能接收器中編寫程式碼。
讓我們來看一下使用功能和元素的方法。我們將從終端使用者對功能的檢視開始。
步驟1 - 開啟您的SharePoint網站。

步驟2 - 要轉到網站設定,您有兩個連結可以用來管理功能。
第一個連結管理網站功能位於“網站操作”下,允許您管理網站範圍的功能。
另一個連結網站集功能位於“網站集管理”下,允許您管理網站集範圍的功能。

步驟3 - 如果單擊這兩個連結中的任何一個,您將被帶到一個頁面,該頁面顯示當前活動和非活動的功能。對於每個功能,您都有一個選項來啟用或停用該功能。

讓我們透過建立一個新的SharePoint解決方案空專案來看一個簡單的例子。
步驟1 - 我們將其命名為FeaturesAndElements,然後單擊“確定”。

步驟2 - 指定您要使用的網站,然後選擇作為場解決方案部署選項,然後單擊“完成”。

我們要建立的第一件事是功能。在解決方案資源管理器中,您可以看到一個“功能”資料夾,該資料夾目前為空。

步驟3 - 右鍵單擊功能資料夾,然後選擇新增功能。它建立一個名為Feature1的功能,並開啟功能設計器。預設標題是專案標題加上功能標題。

步驟4 - 將功能從Feature1重新命名為Sample。
標題和說明是使用者在啟用和停用功能的頁面上看到的。
將標題設定為示例功能,說明設定為新增“聯絡人”列表和用於檢視列表的頁面。我們需要設定的另一件事是功能的範圍,即啟用範圍。
它可以是場、Web應用程式、網站集或網站。在本例中,我們將置備一個列表和一個頁面。由於兩者都位於SharePoint網站中,因此我們將在此處選擇Web。

步驟5 - 讓我們開始在元素中新增功能。第一個元素將是列表,我們將建立一個聯絡人列表。右鍵單擊您的專案,然後選擇新增→新建項...
步驟6 - 在中間窗格中選擇列表,在名稱欄位中輸入聯絡人,然後單擊新增。

步驟7 - 您將看到列表建立嚮導。建立一個名為“聯絡人”的列表,該列表基於“聯絡人”列表。單擊“完成”以建立列表,或者至少建立最終將建立列表的元素。

以下是列表設計器的螢幕截圖。(此處應插入截圖)

步驟8 - 此設計器只是一個XML編輯器。開啟“聯絡人”下的Elements.xml檔案,並新增以下資料。(此處應插入XML程式碼)
<?xml version = "1.0" encoding = "utf-8"?> <Elements xmlns = "http://schemas.microsoft.com/sharepoint/"> <ListInstance Title = "Contacts" OnQuickLaunch = "TRUE" TemplateType = "105" FeatureId = "00bfea71-7e6d-4186-9ba8-c047ac750105" Url = "Lists/Contacts" Description = ""> <Data> <Rows> <Row> <Field Name = "ID">1</Field> <Field Name = "Last Name">Anders</Field> <Field Name = "First Name">Maria</Field> <Field Name = "Company">Alfreds Futerkiste</Field> <Field Name = "Business Phone">030-0074321</Field> </Row> <Row> <Field Name = "ID">2</Field> <Field Name = "Last Name">Hardy</Field> <Field Name = "First Name">Thomas</Field> <Field Name = "Company">Around the Horn</Field> <Field Name = "Business Phone">(171) 555-7788</Field> </Row> <Row> <Field Name = "ID">3</Field> <Field Name = "Last Name">Lebihan</Field> <Field Name = "First Name">Laurence</Field> <Field Name = "Company">Bon app'</Field> <Field Name = "Business Phone">91.24.45.40</Field> </Row> <Row> <Field Name = "ID">4</Field> <Field Name = "Last Name">Ashworth</Field> <Field Name = "First Name">Victoria</Field> <Field Name = "Company">B's Beverages</Field> <Field Name = "Business Phone">(171) 555-1212</Field> </Row> <Row> <Field Name = "ID">5</Field> <Field Name = "Last Name">Mendel</Field> <Field Name = "First Name">Roland</Field> <Field Name = "Company">Ernst Handel</Field> <Field Name = "Business Phone">7675-3425</Field> </Row> </Rows> </Data> </ListInstance> </Elements>
請注意以下幾點:
在ListInstance元素內,我們有一個名為Data的元素,其中包含一些行。
ListInstance將具有屬性Contacts,無論我們是否在快速啟動中顯示它。
我們希望基於聯絡人模板的列表。這裡,TemplateType設定為105。這不是一個隨機數,而是一個有意義的數字。
SharePoint中可以使用的每種預設型別的列表(例如公告列表、任務列表、聯絡人列表等)都與一個數字相關聯。因此,如果將105更改為107,您將獲得不同型別的列表。
FeatureId是與聯絡人列表定義關聯的指南。
步驟9 - 現在我們想要一個顯示此列表資料的頁面。右鍵單擊您的專案,然後選擇新增→新建項...在中間窗格中選擇模組,在名稱欄位中輸入SitePage,然後單擊新增。

您將看到一個名為SitePage的節點,其中包含兩個檔案:Elements.xml和Sample.txt檔案。我們不想置備此sample.txt檔案,但我們想置備一個SitePage。
步驟10 - 將文字檔案重新命名為Contacts.aspx,並替換以下程式碼:(此處應插入ASPX程式碼)
<%@ Assembly Name = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Page MasterPageFile = "~masterurl/default.master" meta:progid = "SharePoint.WebPartPage.Document" %> <%@ Register TagPrefix = "SharePoint" Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <asp:Content ID = "Content2" runat = "server" ContentPlaceHolderID = "PlaceHolderMain"> <SharePoint:SPDataSource runat = "server" ID = "ContactsDataSource" DataSourceMode = "List" UseInternalName = "false"> <SelectParameters> <asp:Parameter Name = "ListName" DefaultValue = "Contacts" /> </SelectParameters> </SharePoint:SPDataSource> <SharePoint:SPGridView runat = "server" ID = "ContactsGridView" DataSourceID = "ContactsDataSource" AutoGenerateColumns = "false" RowStyle-BackColor = "#DDDDDD" AlternatingRowStyle-BackColor = "#EEEEEE"> <Columns> <asp:BoundField HeaderText = "Company" HeaderStyle-HorizontalAlign = "Left" DataField = "Company" /> <asp:BoundField HeaderText = "First Name" HeaderStyle-HorizontalAlign = "Left" DataField = "First Name" /> <asp:BoundField HeaderText = "Last Name" HeaderStyle-HorizontalAlign = "Left" DataField = "Last Name" /> <asp:BoundField HeaderText = "Phone" HeaderStyle-HorizontalAlign = "Left" DataField = "Business Phone" /> </Columns> </SharePoint:SPGridView> </asp:Content> <asp:Content ID = "PageTitle" ContentPlaceHolderID = "PlaceHolderPageTitle" runat = "server"> Contacts </asp:Content> <asp:Content ID = "PageTitleInTitleArea" ContentPlaceHolderID = "PlaceHolderPageTitleInTitleArea" runat = "server" > Contacts </asp:Content>
SitePage具有一個SP.DataSource檔案,我們將使用它來使聯絡人列表資料成為可以在頁面中繫結的內容。SP.GridView將顯示聯絡人資訊。
那是我們的SitePage,現在讓我們看看功能。

請注意,在功能中的項中,聯絡人列表例項和模組已作為元素在我們的SitePage上置備。
Visual Studio理解,元素本身什麼也做不了。元素需要成為功能的一部分。因此,當您新增元素時,需要將其新增到功能中。
步驟11 - 轉到您的專案並右鍵單擊,然後選擇新增→新建項...
在這裡,我們要新增一個CustomAction,所以在中間窗格中選擇空元素,將其命名為Action,然後單擊新增。

如果您回到您的功能,您會看到該元素現在已新增到功能中,如下面的螢幕截圖所示。(此處應插入截圖)

步驟12 - 返回Elements.xml(在Action下),並替換以下程式碼:(此處應插入XML程式碼)
<?xml version = "1.0" encoding = "utf-8"?> <Elements xmlns = "http://schemas.microsoft.com/sharepoint/"> <CustomAction Id = "SiteActionsToolbar" GroupId = "SiteActions" Location = "Microsoft.SharePoint.StandardMenu" Sequence = "100" Title = "Contacts" Description = "A page showing some sample data"> <UrlAction Url = "~site/SitePages/Contacts.aspx"/> </CustomAction> </Elements>
現在,如果要新增連結或選單選項,則需要定義要新增的位置,它是Location和GroupId的組合,它們定義了這些位置。此值的組合表示應將選單選項新增到SiteActions選單。
還有許多其他值的組合,這些組合會在SharePoint網站中的其他位置新增連結或選單。這是您需要研究才能找出在要在SharePoint中的某個位置新增選單選項時所需的正確值組合。
步驟13 - 雙擊功能,您將看到功能設計器。功能設計器是功能清單(一個XML文件)的精美編輯器。

要點:
功能定義元素的邏輯分組。在這裡,我們的功能指的是我們剛剛建立的三個元素清單。
啟用功能後,SharePoint將檢視各個元素清單,並將列表、頁面和連結新增到我們的SharePoint網站。
使用Visual Studio部署時,它會自動啟用專案中的任何功能。由於我們想了解啟用功能的過程,我們將告訴Visual Studio不要這樣做。
步驟14 - 轉到專案屬性,方法是轉到SharePoint選項卡。將部署配置更改為不啟用。

讓我們測試一下。
步驟15 - 在解決方案資源管理器中右鍵單擊您的專案,然後選擇部署。它將打包專案中的所有內容並將其部署到SharePoint開發場。

成功部署後,您將在輸出視窗中看到它。
步驟16 - 轉到SharePoint網站並重新整理它。轉到網站設定→網站操作。

步驟17 - 選擇管理網站功能,因為您的自定義功能是Web範圍的,您將看到您的示例功能。您可以看到此功能尚未啟用,因此讓我們繼續啟用它。

您將在左側窗格中看到“聯絡人”列表。

步驟18 - 單擊“聯絡人”,將顯示列表中的資料。

步驟19 - 轉到網站操作選單。有一個選項可以導航到“聯絡人”頁面。那是我們的CustomAction。

步驟20 - 如果單擊“聯絡人”,您將看到您的SitePage,顯示來自“聯絡人”列表的資料。
