SharePoint 2013 開發——開發並部署webpart
webpart我們就不詳細闡述了,在APP的開發中,自定義屬性設定通過APP webpart的URL查詢字串傳遞,它通過IFRAME來顯示遠端的內容。廢話不多說,我們開始實際操作。
開啟Visual Studio,新建SharePoint應用程式專案,名字我們就叫做SharePointAppPartTest。
參照上一篇完成專案的建立。 右鍵點選SharePoint專案節點,選擇新增->新建項,選擇客戶端Web部件(宿主Web),起名叫做ClientWebPartTest,點選確定並在下一個對話方塊中保留預設完成新增。
我們可以看到解決方案中是如下圖生成的:
SharePoint工程中有一個Elements.xml元素用來說明我們建立的webpart,託管Web應用程式中的Pages資料夾下生成了一個對應的ASPX頁面。開啟Elements.xml檔案可以看到如下預設生成的內容:
<ClientWebPart Name="ClientWebPartTest" Title="ClientWebPartTest 標題" Description="ClientWebPartTest 說明" DefaultWidth="300" DefaultHeight="200">
<!-- Content 元素標識將在客戶端 Web 部件內呈現的頁面的位置
在查詢字串上使用模式 _propertyName_ 引用了屬性
示例: Src="~appWebUrl/Pages/ClientWebPart1.aspx?Property1=_property1_" -->
<Content Type="html" Src="~remoteAppUrl/Pages/ClientWebPartTest.aspx?{StandardTokens}" />
<!-- 在 Properties 元素中定義屬性。
請記得在上述 Content 元素的 Src 特性上放置屬性名稱。 -->
<Properties>
</Properties>
</ClientWebPart>
我們來新增幾個屬性,在Properties節點下,宣告如下四個屬性(string、int、bool、enum):
<Property
Name="myStrProp"
Type="string"
RequiresDesignerPermission="true"
DefaultValue="String default value"
WebCategory="My Test Apps"
WebDisplayName="A property of type string.">
</Property>
<Property
Name="myIntProp"
Type="int"
RequiresDesignerPermission="true"
DefaultValue="0"
WebCategory="My Test Apps"
WebDisplayName="A property of type integer.">
</Property>
<Property
Name="myBoolProp"
Type="boolean"
RequiresDesignerPermission="true"
DefaultValue="false"
WebCategory="My Test Apps"
WebDisplayName="A property of type boolean.">
</Property>
<Property
Name="myEnumProp"
Type="enum"
RequiresDesignerPermission="true"
DefaultValue="1st"
WebCategory="My Test Apps"
WebDisplayName="A property of type enum.">
<EnumItems>
<EnumItem WebDisplayName="First option" Value="1st"/>
<EnumItem WebDisplayName="Second option" Value="2nd"/>
<EnumItem WebDisplayName="Third option" Value="3rd"/>
</EnumItems>
</Property>
都是我們測試中用的,所以名稱有些隨意,實際應用中請取有意義的名稱。 屬性建立完之後,如何與webpart進行關聯呢?我們需要修改Content節點的Src屬性,修改後的節點如下所示:
<Content Type="html" Src="~remoteAppUrl/Pages/ClientWebPartTest.aspx?{StandardTokens}&StrProp=_myStrProp_&IntProp=_myIntProp_&BoolProp=_myBoolProp_&EnumProp=_myEnumProp_&Editmode=_editMode_" />
藉助這種方式,APP webpart的引數通過URL的查詢字串傳遞到ASPX頁面,接下來我們到ASPX頁面去處理我們定義的引數。開啟ClientWebPartTest.aspx頁面,在空的DIV元素內加入如下控制元件:
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Literal ID="Literal1" runat="server" Text="Hello world from an app part!"></asp:Literal>
開啟後臺程式碼ClientWebPartTest.aspx.cs,在Page_Load方法中加入如下程式碼來獲取傳遞的引數:
var intParam = Request.QueryString["IntProp"];
var strParam = Request.QueryString["StrProp"];
var boolParam = Request.QueryString["BoolProp"];
var enumParam = Request.QueryString["EnumProp"];
var editMode = Request.QueryString["EditMode"];
if ("true" == editMode)
{
Literal1.Text = "The App Part is in edit mode";
}
else
{
Literal1.Text = "myIntProp = " + intParam + "<br>" +
"myStrProp = " + strParam + "<br>" +
"myBoolProp = " + boolParam + "<br>" +
"myEnumProp = " + enumParam;
}
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
clientContext.Load(clientContext.Web, web => web.Title);
clientContext.ExecuteQuery();
this.Label1.Text = "Site Title: " + clientContext.Web.Title + "<br>";
}
程式碼中我又加了一段之前的CSOM,是想用簡單的組合來告訴大家我們其實可以在其中做很多的事情。
F5生成並部署APP,成功之後彈出瀏覽器窗體:
一樣的東西,預設會跳轉到應用程式的Default頁面,我們回到我們的開發人員網站,點選右上角的設定->編輯網頁,選擇插入選項卡,點選應用程式部件。
點選新增按鈕完成頁面中新增webpart的操作。
好了,webpart中已經顯示了我們讓它顯示的內容。
我們回到編輯狀態,編輯這個webpart,可以看到我們新增的自定義屬性。我們對屬性進行適當的修改並儲存。
以上就是開發APP webpart的大致過程。
另外一點需要說明的是,由於我們在除錯狀態下,並沒有釋出APP,所以需要Visual Studio處於除錯狀態下才可以進行訪問測試。
相關文章
- SharePoint 2013 開發——開發並部署第一個APPAPP
- SharePoint 2013 開發——開發並部署Provider-hosted APPIDEAPP
- SharePoint 2013 WebPart 管理工具分享[開源]Web
- SharePoint 2013 開發——概述
- SharePoint 2013 開發——開發自定義操作APPAPP
- SharePoint 2013 開發——CSOM概要
- SharePoint 2013 開發——SharePoint APP介紹APP
- SharePoint 2013 開發——APP安全模型APP模型
- [ SharePoint ADFS 開發部署系列 (一)]
- sharepoint2010中的WebPart開發--資料庫連線Web資料庫
- SharePoint 2013 開發——構建工作流開發環境開發環境
- SharePoint 2013 開發——APP開發的考慮和建議APP
- SharePoint 2013 開發——SharePoint Designer 2013工作流
- SharePoint 2013 開發——釋出SharePoint應用程式
- SharePoint 2013 開發——工作流架構架構
- 《SharePoint 2013 應用開發實戰》目錄
- SharePoint 2013 開發——Provider-hosted APP準備工作IDEAPP
- SharePoint 2013 開發——搜尋架構及擴充套件架構套件
- SharePoint PerformancePoint開發例項ORM
- SharePoint 企業開發整合
- SharePoint Framework 開發工具和庫Framework
- Flutter Web 開發部署FlutterWeb
- 規範:開發環境部署開發環境
- pydev部署開發全解析dev
- 並行開發基礎並行
- openfire 3.8.2 原始碼部署 /開發配置 / 二次開發原始碼
- 工業場景全流程!機器學習開發並部署服務到雲端 ⛵機器學習
- SharePoint Framework 基於團隊的開發(三)Framework
- SharePoint Framework 基於團隊的開發(二)Framework
- SharePoint Framework 基於團隊的開發(一)Framework
- SharePoint Framework 基於團隊的開發(五)Framework
- SharePoint Framework 基於團隊的開發(四)Framework
- go web 專案開發部署GoWeb
- 如何開發以便靈活部署
- OA Framework 配置、開發、部署指南Framework
- (1)開發部署離線版本
- SharePoint 2013 開發——獲取使用者配置檔案屬性內容(User Profile)
- [原] SharePoint 2010 WebPart與Google地圖系列 一:建立顯示地圖的WebPartWebGo地圖